Énumération de noms d’utilisateur via réponses subtilement différentes

Username enumeration via subtly different respons

Le site est légèrement vulnérable à l’énumération de noms d’utilisateur ainsi qu’au brute-force de mot de passe. Un compte utilise un nom d’utilisateur et un mot de passe présents dans les wordlists fournies. But : trouver un nom d’utilisateur valide, brute-forcer son mot de passe, puis accéder à la page My account.

Données fournies par le labo

  • Wordlist de noms d’utilisateur (Authentication lab usernames).

  • Wordlist de mots de passe (Authentication lab passwords).

  • Formulaire de login standard.

Étape 1 – Énumération du nom d’utilisateur

  1. Intercepter la requête du formulaire de connexion et l’envoyer dans Intruder.

  • Lancer une attaque sur le paramètre username en utilisant la wordlist de noms d’utilisateur.

  • Par défaut, le serveur renvoie le message : Invalid username or password.

  • Dans les settings d’Intruder, définir une condition pour ne pas faire match cette réponse générique (afin de filtrer les réponses identiques).

  • En observant les résultats, on repère une entrée dont la réponse diffère légèrement : une réponse sans le point habituel dans le message, associée à l’utilisateur alpha.

On en déduit que alpha est un nom d’utilisateur valide.

Étape 2 – Brute-force du mot de passe

  1. Garder la même requête de login, avec alpha fixé comme username.

  2. Configurer Intruder pour lancer l’attaque sur le paramètre password, en utilisant la wordlist de mots de passe.

  3. Lancer l’attaque et comparer les réponses du serveur.

  4. Pour le mot de passe 123456, la réponse est un 302 marqué comme ok dans les notes, ce qui indique que la tentative de connexion a réussi.

Mis à jour