# Attaque "blind ROP" ## Instructions ### Compilation du programme vulnérable : `gcc echo.c -o echo` ### Installation du module python pwn `pip install pwn` ### Lancement du programme vulnérable en le liant à un port tcp `socat -v tcp-l:31337,fork exec:'./echo'` ### Attaque `python3 attaque.py` On peut ajouter `DEBUG` en paramètre pour voir les données envoyées et reçues. ## Résultats On peut exécuter la fonction C `brop()` en écrasant l'adresse de retour par son adresse. Pour cela, on récupère d'abord le canary, puis la véritable adresse de retour. On peut ensuite écraser le canary et rbp par leur valeur, puis l'addresse de retour par sa valeur + un offset, et ce jusqu'à trouver `brop()`. On voit qu'on arrive à exécuter des instructions qui appartiennent à `brop()`, car on voit le print "brop".