开始前的例行叨叨:
这大概是最简单的pwn题了吧,直接溢出的。主要是记录下write函数泄露动态地址的姿势,还有程序执行完一次就退出了,如何在溢出的末尾让它重执行,以及从lic中提取地址的姿势。
先放题目(侵删):
https://github.com/staticStr/ForCTF/blob/master/rop.zip?raw=true
压缩包里给了题目和lib32
拿出令人沉迷的ida看看源码:
不能更简单了,就一个read函数,能往buf里写0x100,而buf位置是bp-88存在溢出,可以覆盖。
步骤1:
在kali32位里gdb调试,输入个200长度的测试字符看看报错地址。
生成测试字符,并输入到gdb调试的程序里:
现在我们得到了padding长度是140