Tutoriel SQLmap

Exécuter sqlmap vous-même n’est pas difficile.
Ce tutoriel vous fera passer de noob à ninja avec ce puissant outil de test d’injection sql.

Sqlmap est un outil basé sur python, ce qui signifie qu’il fonctionnera généralement sur tout système avec python. Cependant, nous aimons Linux et spécifiquement Ubuntu, il rend simplement facile de faire des choses. Python est déjà installé dans Ubuntu. C’est le même outil que nous utilisons sur notre site de test d’injection sql en ligne.

Pour commencer avec sqlmap, il s’agit de télécharger l’outil, de le décompresser et d’exécuter la commande avec les options nécessaires. Comme il peut y avoir des utilisateurs de Windows parmi vous, je vais d’abord commencer par la façon de mettre en place une installation Ubuntu. Il est facile de démarrer sur un système Linux Ubuntu, même si l’idée de Linux vous fait frissonner de peur. Qui sait, vous pourriez même l’aimer.

Sommaire :
– Installer SQLmap
– HTTP GET
– Se faire bloquer
– Tables de la base de données
– Vider les données
– Conseils
– Sortie verbeuse
– Références de la base de données
– Références de connexion à la BD

Installer SQLmap

Étape 1 : Obtenez un système d’exploitation basé sur Linux

Si vous allez exécuter SQLmap sur Windows avec Python, assurez-vous que vous avez Python installé, et passez à l’étape suivante. Sinon, mettez votre système Linux en route. Soit vous installez une machine virtuelle Linux (Ubuntu ou Kali recommandé) sur Windows (Virtualbox / VMware / Parralèles), soit vous démarrez votre bureau Linux.

Si vous exécutez Microsoft Windows comme système d’exploitation principal, il est pratique et simple d’exécuter une installation d’Ubuntu Linux (ou Kali Linux) dans une machine virtuelle. Vous pouvez alors jouer avec sqlmap, nmap, nikto et openvas ainsi qu’avec une centaine d’autres puissants outils de sécurité open source.

Etape 2 : Installation de SQLmap

Python est préinstallé dans Ubuntu, il vous suffit donc de cloner le dernier dépôt de git et de commencer vos tests.

Changez dans le répertoire et exécutez le script python pour vous assurer que tout semble bon.

Si vous ne voyez pas quelque chose comme la sortie ci-dessus, assurez-vous que python fonctionne (essayez python -V) pour vérifier la version et vous êtes au bon endroit. Maintenant, passons à autre chose, c’était la partie facile.

Pour obtenir une liste complète des options disponibles, exécutez python sqlmap.py -h.

Exécution de SQLmap

Test simple basé sur GET HTTP

Dans ce test simple, nous utiliserons une requête standard basée sur HTTP GET contre un URI avec un paramètre (?id=5). Cela permettra de tester différentes méthodes d’injection SQL contre le paramètre id.

python sqlmap.py -u 'http://mytestsite.com/page.php?id=5'

Dans les résultats, nous pouvons voir les différentes méthodes utilisées contre le paramètre.

Se faire bloquer par le Web Application Firewall – WAF

Essayer d’utiliser un agent utilisateur différent puis le sqlmap par défaut avec le paramètre --randomagent.

Retrouver les tables de la base de données

SQLmap peut être utilisé pour tester et exploiter l’injection SQL, en faisant des choses telles que l’extraction de données des bases de données, la mise à jour des tables, et même le popping de shells sur des hôtes distants si tous les canards sont alignés.

Retrouvons les tables de la base de données en utilisant la vulnérabilité d’injection SQL que nous avons confirmée ci-dessus. Comme vous le verrez dans la sortie ci-dessous, nous pouvons continuer à tester contre la cible sans avoir à tester à nouveau la vulnérabilité. SQLmap utilise les informations qu’il connaît sur le site pour continuer à exploiter la base de données cible.

Pour récupérer les données, nous ajoutons simplement un paramètre à la commande précédente. En ajoutant --tables, nous pouvons tenter de récupérer toutes les tables.

Dump the data

Pour obtenir des données, il suffit d’étendre notre commande. L’ajout de -T users se concentrera sur la table users où nous pourrons peut-être obtenir des informations d’identification. L’ajout de --dump indiquera à SQLmap de récupérer toutes les données de la table users, d’abord les colonnes seront énumérées et ensuite les données seront vidées des colonnes.

Conseils de SQLmap – Soyez ninja sur vos tests d’injection SQL

Sortie verbale

Lors des tests d’injection SQL, il est souvent nécessaire de creuser dans les requêtes manuellement pour déterminer les problèmes avec le test ou pour confirmer ou même exploiter davantage une injection découverte. Être en mesure d’augmenter la verbosité de votre sortie SQLmap aidera à ce test.

En augmentant la verbosité à 4, vous pouvez obtenir les demandes HTTP, avec 5, vous voyez également les en-têtes de réponse HTTP et 6 montrera la réponse HTTP complète. Évidemment, cela peut devenir super bruyant mais parfois vous avez besoin de voir ce qui se passe.

Got Database Credentials?

Cette astuce pratique vous permet de vous connecter directement à la base de données et de vider les données telles que les utilisateurs, les bases de données ou les tables. Ce qui est bien, c’est que vous n’avez pas à vous souvenir de la syntaxe SQL de la base de données ou à avoir un client installé. SQLmap fera le gros du travail en agissant comme un client de base de données pour décharger les données.

Chaînes de connexion à la base de données:

MySQL, Oracle, Microsoft SQL Server, PostgreSQL
DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
SQLite, Microsoft Access
DBMS://DATABASE_FILEPATH

Popping Shells et plus

SQLmap a un nombre ridicule d’options, et est un outil incroyable pour faire corps avec une base de données. En plus de faire sauter des coquilles sur l’hôte cible, vous pouvez envoyer des requêtes à travers tor, trouver des injections dans les réponses des pages automatiquement, spider des sites et, bien sûr, effectuer des tests basés sur HTTP POST. Ces exemples ne font qu’effleurer la surface. Trouvez plus d’exemples sur l’excellente page wiki github.

L’injection SQL continue d’être une cible favorite des attaquants.

Utilisez notre scanner d’injection SQL pour tester les paramètres injectables sur un URI web.

Test de niveau supérieur avec des scanners de vulnérabilité de sécurité avancés.

Outils de confiance. Hébergés pour un accès facile.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.