分类: pwn学习

12 篇文章

强网杯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寄存器的方法。
libc-2.30后的largebin attack
largebin attack的主要作用类似unsortedbin attack,都是往一个内存里写入堆地址(有时会将堆地址当作一个大数使用)。 当前能够找到的大部分largebin attack都是基于libc-2.30之前的版本,但是libc-2.30之后的版本在原来利用方法使用的分支上加入了针对跳表完整性的验证,使得利用失效。但是在向larg…