Principe:
Un simple buffer overflow nécessitant de rediriger l'addresse vers un emplacement spécifique du programme, pour obtenir un shell. Envoyer correctement le payload fut le plus compliqué
Prise en main
Le Débuggeur
Tester à la main
Il faut prendre garde à l'endian de la stack: la valeur à entrer à la main sera en fait
a2 11 40 00 00 00 00 00
Le payload réel
J'ai perdu des plombes là dessus, à ne pas comprendre pourquoi ce payload ne marche pas…
mkfifo
Le désespoir avec PHP
Le flag
On peut se contenter d'un cat|./pwn et d'utiliser ps -aux|grep 'pwn' dans un autre terminal
pour trouver le PID du process pwn. On lui envoie alors les données vers stdin
via la commande cat binshell.dat > /proc/PID/fd/0
Le PHP script fait cela automatiquement