之前师兄给了xx公司内部ctf的一些题目,pwn题真的好难……以至于我唯一能做出来的,只有这道内核pwn了……
因为避免泄密之类的,程序的代码我也不po上来了
大概描述一下驱动的功能
交互都使用ioctl
有两个功能
- 读取
- 输入
读取那里可以leak出内核base,canary
输入那里会读到栈上,不过会和一些东西异或,这里东西也是固定的所以可以leak出来
然后输入有一个栈溢出,溢出之后就可以rop
用extract_vmlinux提取了一下vmlinux,搜了一波gadgets
然后开始rop,但是这题做了我大概4 5个小时,原因是gadgets太坑爹…..
下面是poc
1 | #include <stdio.h> |