强网杯2018 core(ret2usr)
ret2usr ret2usr的利用方法和kernel ROP类似,也算是一种ROP,区别在于调用commit_creds(prepare_kernel_cred(NULL))时,ROP中是通过多个gadget组合实现的。而在ret2usr中,利用了内核态可以访问用户态内存的特性,我们可以在用户态中写好commit_creds(prepare_ke…
强网杯2018 core(kernel ROP)
前言 这是我第一次尝试学习kernel pwn,我自己不是很擅长系统性地整理知识点,所以就不完整地整一篇操作系统相关的文章了。 commit_creds(prepare_kernel_cred(0)) 提权 PoC 原理分析 Linux的内核中是用cred结构体记录每个线程的用户权限,也就是说想办法控制了这个结构体就能实现提权操作。 结构体定义如下…
seccomp绕过笔记
seccomp是Linux环境下禁用进程相关syscall的功能,进而提高程序的安全性,有时会将这个称为沙盒。简单地记录几个绕过方式
house of apple2及house of cat PoC
接触这个套路是在这次的强网杯赛后,知道了这个利用方法可以解出house of cat这一题,比赛没能做出来属实可惜。在后续研究house of cat的调用链时,我发现是同一种,故一起整理到一起。
close(1)绕过笔记
pwn题中有时候会出现将stdout关闭的情况,导致无法正常输出,这里记录三种绕过方法。
mp_变量的利用
mp_结构体主要是通过修改其中的tcache_bins来实现扩大tcache能够申请到的bin范围,并在对应偏移处写入需要申请出来的地址,从而使得申请到诸如__free_hook的特殊地址。
setcontext利用PoC
setcontext利用是通过利用setcontext+61处的mov rsp, [rdx + 0xA0]这一gadget来控制rsp寄存器,将栈迁移到一个可控位置,进而实现rop利用。
house of husk PoC
house of husk是一种在能够申请和释放大chunk,且存在UAF漏洞的情况下,通过利用printf中的一条调用链实现的控制RIP寄存器的方法。