834 B
834 B
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".