Une page de connexion exécute cette requête SQL côté serveur :
SELECT * FROM users WHERE username='[INPUT]' AND password='[INPUT2]'
En testant le champ username avec la valeur admin' --, la page répond :
Bienvenue admin ! Votre token secret : CSA{sql_1nj3ct10n_101}Expliquez pourquoi cette injection fonctionne et soumettez le flag.
Comment fonctionne l'injection SQL
La requête devient :
SELECT * FROM users WHERE username='admin' --' AND password='...'
Le -- est un commentaire SQL : tout ce qui suit est ignoré, y compris la vérification du mot de passe ! L'attaquant se connecte sans connaître le mot de passe.
Protection : utiliser des requêtes préparées (prepared statements) qui séparent le code SQL des données.
Connectez-vous pour sauvegarder votre score.