26 lines
834 B
Markdown
26 lines
834 B
Markdown
# 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".
|
|
|