| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/env python3
- from pwn import *
- import subprocess
- def start(argv=[], *a, **kw):
- if args.GDB: # Set GDBscript below
- return gdb.debug([exe] + argv, gdbscript=gdbscript, *a, **kw)
- elif args.REMOTE: # ('server', 'port')
- return remote(sys.argv[1], sys.argv[2], *a, **kw)
- else: # Run locally
- return process([exe] + argv, *a, **kw)
- """
- notes:
- """
- gdbscript = ""
- breakpoints = [
- # 'breakrva 0xoffset',
- "continue"
- ]
- for s in breakpoints:
- gdbscript += s + "\n"
- exe = "./vuln"
- elf = context.binary = ELF(exe, checksec=False)
- # context.log_level = 'info' # use DEBUG in args for debugging. LOG_LEVEL=warn/info/error for anything else
- """
- if args.REMOTE:
- libc = ELF('./libc.so.6', checksec=False)
- else:
- libc = ELF('/usr/lib/x86_64-linux-gnu/libc.so.6', checksec=False)
- """
- # ===========================================================
- # EXPLOIT GOES HERE
- # ===========================================================
- offset = 0
- io = start()
- payload = flat({offset: []})
- io.sendlineafter(b">", payload)
- io.interactive()
|