Kali-linux distribution GNU/Linux spécialisée dans l'audit et le pentest.
Kali-linux.fr Communauté française de kali-linux
Tutoriel SQLMAP avancé

Salut chers amis passionnés de hacking. La dernière fois lors de notre première partie sur sqlmap, nous avons fait nos premiers pas avec ce formidable outil. Aujourd’hui, nous allons passer à un niveau supérieur dans le maniement de Sqlmap.
Nous allons apprendre quelques astuces parmi lesquelles: la lecture et l’écriture des fichiers sur une machine distante, la prise de contrôle d’une machine, le scanning avec google dork…

Prérequis

Pour cet article comme lab, nous avons déployé sur une machine windows 10 une application web vulnérable à l’injection sql disponible ici.

Je vous propose de télécharger l’image et de suivre et de tester les instructions de ce tutoriel sqlmap deuxième partie.

Encore une fois, si vous ne l’avez pas encore lu, je vous propose de vous familiariser avec la première partie de ce tutoriel sqlmap.

Exemples et cas d’usage de sqlmap

Exécuter des requêtes SQL avec sqlmap

Grâce à l’option --sql-query sqlmap nous donne la possibilité d’exécuter directement des requêtes sql que nous-même avons écrites. La commande se présente de la manière suivante:

sqlmap -u "url" --sql-query "requête sql"


Dans notre cas la requête est @@datadir, et la commande donne sqlmap -u http://192.168.44.1:8080/sqlil/?id=2 --sql-query "select @@datadir".

Nous pouvons voir que la requête a été bien exécutée et nous avons obtenu le répertoire des données de mysql.

Nous aurions pu le faire autrement grâce à l’option --sql-shell qui nous offre la possibiltées d’avoir une shell interactif pour exécuter les requêtes. La commande dans ce cas est sqlmap -u http://192.168.44.1:8080/sqlil/?id=2 --sql-shell.

Accéder au système de fichiers avec Sqlmap

En fonctions des droits dont disposes l’utilisateur de la base de données, avec sqlmap nous seront en mesure de lire et d’écrire dans le système de fichier.

Pour lire un fichier dans le système de fichier, nous allons d’abord indiquer le chemin vers ce fichier grâce à l’option --file-read.

Comme exemple, nous allons lire le fichier index.php et le chemin vers lui est /programs/xampp/htdocs/ . La commande donne utilisé est donc:

sqlmap -u http://192.168.44.1:8080/sqlil/?id=2 --file-read=/programs/xampp/htdocs/index.php.

Comme on peut le voir, le fichier a été sauvegardé sur notre machine en local dans le répertoire /root/.sqlmap/output/192.168.44.1/files/ avec comme nom _programs_xampp_htdocs_index.php. Le fichier étant sur notre machine en local nous pouvons donc afficher son contenu.

Pour écrire un fichier dans le système de fichier, il nous faudra spécifier le fichier en local à uploader et le répertoire où il doit être uploadé grâce respectivement aux options --file-write et --file-dest .

Dans notre cas, nous allons uploader le fichier shell.php dans le répertoire  /programs/xampp/htdocs/.

La commande à utiliser est :

sqlmap -u http://192.168.44.1:8080/sqlil/?id=2 --file-write=shell.php --file-dest=/programs/xampp/htdocs/shell.php 

Sqlmap et la prise de contrôle du système d’exploitation

Outre l’accès au système de fichier, il est aussi possible grâce à sqlmap d’exécuter des commandes arbitraires sur le système d’exploitation sous-jacent du serveur de base de données. Pour que cela soit possible, il faut que l’utilisateur de la base de données dispose des droits adéquats.

Nous pouvons spécifier la commande à exécuter sur le système grâce à l’option --os-cmd. Dans notre exemple nous allons exécuter la commande dir et la commande finale utilisée est sqlmap -u http://192.168.44.1:8080/sqlil/?id=2 --os-cmd dir

On a aussi la possibilité de simuler un véritable shell où nous pouvons taper autant de commandes que nous voulons grâce à l’option --os-shell. Pour notre exemple la commande donne sqlmap -u http://192.168.44.1:8080/sqlil/?id=2 --os-shell

Sqlmap et le scanning avec Google Dork

Avec l’option -g, nous avons la possibilité d’effectuer des recherches sur google et d’utiliser les 100 premières URL résultantes pour des tests d’injection SQL. Pour chaque url trouvé une confirmation sera demandé avant le début des tests. Comme exemple nous avons utilisé la commande suivante :

sqlmap -g "inurl:\".php?id=1\""

Sqlmap et les proxys

On ne voudrait pas forcément que notre adresse IP sois visible, pour cela nous pouvons utiliser un proxy qui jouera le rôle d’intermédiaire entre la cible et nous. Cela est possible grâce à l’option --proxy que nous pouvons configurer de la manière suivante :

sqlmap -u [url] --proxy [protocol://][host]:[port]  

Une autre possibilité intéressante serait d’utiliser tor pour rester anonyme grâce aux commandes:

sqlmap -u[url] --tor  
sqlmap -u [url] --tor-type [protocol] --tor-port [port]  

Conclusion

Grâce à cet article, nous avons vu comment nous pouvons exploiter une faille d’injection sql par le biais de sqlmap pour lire et écrire des fichiers sur l’hôte de l’application web, et même d’en prendre le contrôle. Nous pouvons aussi rester anonymes et exécuter nos propres requêtes sql.

J’espère que cet article vous a permis d’améliorer vos compétences dans le maniement de sqlmap et à bientôt pour encore plus d’astuces.

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.