比赛结果 居然是0解,但是果然是0解…… 本题改编自CVE-2022-0185,参考链接:https://kagehutatsu.com/?p=526 出题前置 由于Linux Kernel在5.11之后禁止了unprivileged uffd,因此传统意义上的基于struct msg_msg的劫持方法不再适用 因此,即使是在CVE-…
漏洞分析 函数调用链 __x64_sys_fsconfig()->vfs_fsconfig_locked()->vfs_parse_fs_param()->legacy_parse_param() __x64_sys_fsconfig SYSCALL_DEFINE5(fsconfig, int, fd, unsigned int,…
struct subprocess_info size: 0x60 (kmalloc-128) kernel_base =subprocess_info.work.func-call_usermodehelper_exec_work =((uint64_t *)subprocess_info)[0x3]-call_usermodehelper_ex…
shm_file_data size: 0x20 (kmalloc-32) ns, vm_ops泄漏kernel_base file泄漏kernel堆地址 struct shm_file_data { int id; struct ipc_namespace *ns; struct file *file; const struct vm_opera…
感谢各位大师傅们捧场 题目被各位师傅们快打烂了 希望师傅们玩的开心 login 简单的栈迁移 控制rbp后调用main函数中的read向bss段上写入ROP 调用完毕后调用leave完成栈迁移 from pwn import* #r=remote("129.211.173.64",10005) r=process('./main') context…
string_go 简单栈溢出 from pwn import* #r=remote("82.157.20.104",29800) r=process('./main') context.log_level='debug' libc=ELF("./libc-2.27.so") def write(content): r.recvuntil(">…
常规2.27以下的off by null多半是通过手工输入伪造pre_size来达成堆块重叠 但有些时候,比如输入长度被限制住时,就需要其他的途径来伪造pre_size demo程序(2.27-3ubuntu1.2_amd64): new: delete: show: 最麻烦的无疑是读入的content被限制在了8个字节,并且malloc和free…