前言 这是我第一次尝试学习kernel pwn,我自己不是很擅长系统性地整理知识点,所以就不完整地整一篇操作系统相关的文章了。 commit_creds(prepare_kernel_cred(0)) 提权 PoC 原理分析 Linux的内核中是用cred结构体记录每个线程的用户权限,也就是说想办法控制了这个结构体就能实现提权操作。 结构体定义如下…
seccomp是Linux环境下禁用进程相关syscall的功能,进而提高程序的安全性,有时会将这个称为沙盒。简单地记录几个绕过方式
接触这个套路是在这次的强网杯赛后,知道了这个利用方法可以解出house of cat这一题,比赛没能做出来属实可惜。在后续研究house of cat的调用链时,我发现是同一种,故一起整理到一起。
在glibc-2.24之后FILE_IO的vtable加入了合法性检查,导致原本的fsop无法使用,不过我们依然可以在合法的vtable中找到合适的gadget。
pwn题中有时候会出现将stdout关闭的情况,导致无法正常输出,这里记录三种绕过方法。
mp_结构体主要是通过修改其中的tcache_bins来实现扩大tcache能够申请到的bin范围,并在对应偏移处写入需要申请出来的地址,从而使得申请到诸如__free_hook的特殊地址。
setcontext利用是通过利用setcontext+61处的mov rsp, [rdx + 0xA0]这一gadget来控制rsp寄存器,将栈迁移到一个可控位置,进而实现rop利用。
house of husk是一种在能够申请和释放大chunk,且存在UAF漏洞的情况下,通过利用printf中的一条调用链实现的控制RIP寄存器的方法。
largebin attack的主要作用类似unsortedbin attack,都是往一个内存里写入堆地址(有时会将堆地址当作一个大数使用)。 当前能够找到的大部分largebin attack都是基于libc-2.30之前的版本,但是libc-2.30之后的版本在原来利用方法使用的分支上加入了针对跳表完整性的验证,使得利用失效。但是在向larg…
虽说是入门级的比赛,但还是卡在了签到题上,最后一题都没有做出来。不过这次还看了IoT的题目,虽然也是差一点点做出来。。。