Injection SQL aveugle à réponses conditionnelles

Blind SQL injection with conditional responses

Contexte / vulnérabilité : la valeur d’un cookie de suivi (TrackingId) est injectée dans une requête SQL côté serveur. La requête ne renvoie pas directement de résultat ni d’erreurs, mais la page affiche "Welcome back!" si la requête retourne au moins une ligne. Ceci permet une SQLi aveugle par conditions (boolean-based) : on interroge des assertions vraies/faux et on observe la présence/absence du message pour extraire des données.

But du lab : extraire le mot de passe de l’utilisateur administrator et se connecter en tant qu’administrateur.

Technique (phases et payloads essentiels)

  1. Tests basiques de stabilité / colonnes

  • (permet de détecter comportement d’erreur si utile)

  1. Vérification d’une condition vraie / fausse (contrôle du canal de fuite)

  • la première doit déclencher Welcome back!, la seconde non.

  1. Vérifier existence d’un utilisateur administrator

    • si Welcome back! apparaît, la sous-requête a renvoyé une ligne.

  2. Extraire caractère par caractère (substrings)

    • Nom d’utilisateur (ex.)

    • Mot de passe (ex.)

      itérer positions/valeurs pour reconstituer la chaîne.

  3. Connaître la longueur (exemple : tester longueur = 20)

    s’adapte selon SGBD (LENGTH / LEN / LENGTH() → adapter).

Script d’automatisation (Python)

Le script fournis automatise un brute-force caractère-par-caractère en modifiant le cookie TrackingId.

Mis à jour

Ce contenu vous a-t-il été utile ?