Défi Sécurité Web & API +50 XP

SQL Injection

Un portail de gestion des employés d'entreprise se dresse entre vous et des données sensibles 💼. Le formulaire de connexion semble sécurisé, mais les apparences peuvent être trompeuses...

🔍 Pouvez-vous manipuler le système d'authentification pour extraire les secrets cachés de la base de données ? Il est temps de mettre vos compétences en SQL injection à l'épreuve ! 💉

75 % le résolvent 51 hackers ont joué 1 flag Mis à jour le 27 sept. 2026 First blood Zero404
SQL InjectionDatabase SecurityWeb SecurityBlind SQLiTime-based SQLiBoolean-based SQLi
Commencez Votre Défi
  1. 1Créez un compte gratuit, puis cliquez sur « Démarrer le Lab »Vous obtiendrez votre propre machine avec une adresse IP
  2. 2Explorez la cibleOuvrez l'IP dans votre navigateur et cherchez des vulnérabilités
  3. 3Trouvez et soumettez les flagsLes flags sont des textes secrets cachés dans le système - collez-les ci-dessous pour marquer des XP
  • ~1-2 min de configuration
  • Instance privée
  • 30 min par session. Relancez-la gratuitement, autant de fois que vous voulez.

L'injection SQL est l'une des vulnérabilités d'applications web les plus dangereuses et répandues, se classant régulièrement en tête du Top 10 de l'OWASP. Cette technique d'attaque permet aux adversaires d'interférer avec les requêtes qu'une application envoie à sa base de données, accédant potentiellement à des données qu'ils ne devraient jamais pouvoir atteindre, les modifier ou les supprimer. Un tutoriel complet sur l'injection SQL est une connaissance essentielle pour quiconque travaille en cybersécurité.

Comment fonctionne l'injection SQL

L'injection SQL se produit lorsque les entrées fournies par l'utilisateur sont incorporées dans les requêtes SQL sans assainissement ni paramétrage approprié. Quand une application construit des requêtes en concaténant des chaînes avec les entrées utilisateur, les attaquants peuvent injecter une syntaxe SQL qui modifie la logique de la requête. Par exemple, saisir ' OR 1=1 -- dans un champ de connexion peut transformer une requête d'authentification pour retourner tous les utilisateurs, contournant entièrement la connexion. Le SQL injecté devient partie intégrante de la requête exécutée, donnant à l'attaquant un contrôle direct sur les opérations de la base de données.

Types d'attaques par injection SQL

Ce tutoriel sur l'injection SQL couvre plusieurs catégories d'attaques. L'injection classique (in-band) retourne les résultats directement dans la réponse de l'application. L'injection SQL aveugle (blind) nécessite de déduire des informations à partir du comportement de l'application - l'injection aveugle basée sur les booléens observe différentes réponses pour les conditions vraies et fausses, tandis que l'injection aveugle basée sur le temps utilise des délais délibérés (comme SLEEP(5)) pour extraire les données un bit à la fois. L'injection hors bande (out-of-band) utilise des canaux alternatifs comme les requêtes DNS pour exfiltrer les données. Chaque technique est adaptée à différentes configurations d'applications et niveaux de défense.

Impact et prévention

L'injection SQL peut conduire à un accès non autorisé aux données, à la manipulation de données, au contournement de l'authentification et, dans certains cas, à l'exécution de commandes sur le système d'exploitation via des fonctionnalités de base de données comme xp_cmdshell. Des violations de données majeures affectant des millions d'utilisateurs ont été attribuées à des vulnérabilités d'injection SQL. La défense principale est l'utilisation de requêtes paramétrées (prepared statements), qui séparent le code SQL des données au niveau du protocole. La validation des entrées, les procédures stockées, les comptes de base de données à privilèges minimaux et les pare-feu d'applications web fournissent des couches de protection supplémentaires.

Ce que vous apprendrez

  • Comprendre comment les vulnérabilités d'injection SQL proviennent d'entrées non assainies dans les requêtes
  • Apprendre les techniques d'injection SQL aveugle basées sur les booléens et le temps
  • Pratiquer l'énumération de bases de données et l'extraction de données par injection
  • Étudier le contournement d'authentification à l'aide de payloads d'injection SQL
  • Reconnaître l'importance des requêtes paramétrées comme défense principale

Prérequis

Notions de base en SQL Compréhension des formulaires web et de HTTP Familiarité avec les concepts de bases de données