Tags: binary pwn 


* 64bit dynamically linked binary (canary and NX enabled, no PIE)
* Source code available
* The user can input 16 bytes of code, which is checked for several byte-sequences and then executed

Possible solution:
* Use rcx register which contains a libc address to trigger one-gadget in libc to call execve("/bin/sh", NULL, NULL)

Original writeup (https://devel0pment.de/?p=451).