File - M2

publicité
Institut Supérieur d’Informatique
SQL Injection
1
RÉALISÉ PAR:
AYARI MAHER
CHALWATI HAITHEM
HAMDOUN EMIR
HAFSI RAMZI
HAMMAMI OMAR
2012/2013
SOMMAIRE
2
 Qu’est ce qu‘un SQL injection?
 Les menaces.
 Technique d’exploitation.
 Contre-mesure.
 Démonstration.
Qu’est ce qu‘un SQL injection?
3
 Insertion ou "modification" d'une requête SQL via
l'entrée des données en provenance d’un client d’une
application .
 Consiste à placer des instructions SQL dans le champ
de saisie de l'utilisateur.
=>Principalement l’entrée d'utilisateur est utilisé dans
la construction d'une requête SQL afin de contrôler
une base de données.
Sources d’injection
4
 Injection via les inputs utilisateurs.
 Chaine de caractères malicieuse dans les formes web.
 Injection via les cookies.
 Modification des champs des cookies pour contenir du code
malicieux.
 Injection via les variables des serveurs.
 Les entêtes sont manipulés pour contenir du code malicieux.
But
5
 Extraction des informations.
 Ajout ou modification des informations.
 Effectuer des dénis de service.
 Contourner l'authentification.
 Exécution des commandes à distance.
Les menaces(1/2)
6
 Exploit réussi par injection SQL

Lecture des données sensibles de la base de données.

Modification des données de bases de données (INSERT /
UPDATE / DROP).

Exécution des opérations d'administration sur la base de
données (l'arrêt du SGBD).
Les menaces(2/2)
7
 Attaques par injection SQL

Permettre à des attaquants d’avoir une identité frauduleuse .

Permettre la divulgation complète de toutes les données sur le système.

Entraîner des problèmes tels que la répudiation des transactions
annuler.

Détruire les données ou les rendre autrement indisponible.

Devenir administrateur de la serveur de base de données.
 Dans certains cas, les commandes d'émission visent le
système d'exploitation.
Technique d’exploitation
8
 Exploitation par technique de l’union.
 Exploitation par technique booléenne(Tautologies).
 Exploitation par technique basée erreur.
 Piggybacked Queries.
 Etc…
Technique d’exploitation
Exemple(1/3)
 Union:
Select login,pass
from admin
where login='' UNION SELECT login,pass
from admin/*' and pass='$pass‘
=>Les noms de colonnes utilisées dans le premier
SELECT seront utilisées comme nom de champs
pour les résultats retournés.
Technique d’exploitation
Exemple(2/3)
10
 Piggybacked Queries

Requête falsifié a exécuter par la base de données.
SELECT
prodinfo FROM
prodtable
WHERE
prodname= ‘; DROP TABLE prodinfo;-- ‘
Input string
=>Dépend de la connaissance de la structure base de données
(exemple nom de la table).
Technique d’exploitation
Exemple(3/3)
11
 Tautologies

Création d’une requête qui est évalué à 1.

Hypothèse toujours vraie.
SELECT
prodinfo FROM
prodtable
WHERE
login= ‘user‘ or 1=1 –– ‘ AND pass=‘vide’
Input string
Autres injection possible
12
 En utilisant des injections SQL, les attaquants
peuvent:

Ajouter de nouvelles données à la base de données

Modifier les données actuellement dans la base de données en
exécutant un UPDATE SQL injecté.
Contre-mesure (1/2)
13
 Validation d'entrée(input).
 Limité la longueur de l’entrée.
 Vérifier la syntaxe de l'entrée de la validité(dates/@
email/etc…).
 Éviter les messages d'erreur détaillés.
Contre-mesure (2/2)
14
 Limiter les autorisations de base de données et
séparer les utilisateurs.
 Détection des mots indésirables dans les requêtes
comme insert update ….
 Utiliser les fonctions prévues à protéger les chaînes.
 mysql_real_escape_string()
Téléchargement