蛮有意思的一题,格式化字符串,0x18个字节,2次机会,数据写在栈上;
很显然需要构造循环多次利用格式化字符串漏洞,第一次用来泄漏地址,第二次修改返回地址为main,回到printf处继续利用
但是题目禁用了execv,也就意味着需要通过orw去读取flag,只能构造rop了;用printf去写rop链,这也是比较有意思的地方;每一次回到printf处都有两次任意地址写的机会,一次需要用来修改返回地址,第二次就可以用来写rop了,这个rop写到main的返回地址处即可
1 | #coding:utf-8 |