Contexte / vulnérabilité : fonction de connexion vulnérable à l’injection SQL. Requête typique côté serveur :
SELECT * FROM users WHERE username = 'administrator'--' AND password = ''
Objectif du lab : se connecter en tant qu’utilisateur administrator sans connaître le mot de passe.
Paramètre vulnérable : champ username (ou password selon l’implémentation).
Preuve de concept (payload fourni) :
Interprétation courte : injecte une condition toujours vraie (1=1) qui neutralise la vérification du mot de passe, entraînant l’authentification comme le premier enregistrement retourné (souvent administrator).
Exemple d’utilisation : envoyer username = ' or 1=1-- - (et laisser/mettre n’importe quel password) → la clause WHERE devient vraie pour toutes les lignes et la session est ouverte en tant qu’un utilisateur (souvent l’administrateur).
Résultat attendu : connexion réussie en tant qu’administrateur sans mot de passe valide.
Impact : compromis total d’un compte à privilèges, escalade d’accès, exposition/altération de données sensibles et contrôle applicatif.