看到名字就想到了用rop来做这道题

老样子chescksec和file一下

[HarekazeCTF2019]baby_rop_main函数

 

 可以看到是64位的程序开启了nx保护,把程序放到idax64里

[HarekazeCTF2019]baby_rop_寄存器_02

 

 可以看到有system和/bin/sh,/bin/sh无法跟随所以用rop链来做

查看main函数

[HarekazeCTF2019]baby_rop_main函数_03

 

 因为该程序是64位程序,参数是放入寄存器中的所以我们需要一个pop_rdi

[HarekazeCTF2019]baby_rop_当前目录_04

 

 system的地址可以用objdump -d -j .plt ./babyrop查找

完整exp如下

[HarekazeCTF2019]baby_rop_寄存器_05

 

 注意:该程序的flag没有放在当前目录下所以需要find -name flag查找一下

 

[HarekazeCTF2019]baby_rop_其他_06

 

 成功获得flag

结束!