Énumération de nom d’utilisateur par verrouillage de compte

Username enumeration via account lock

L’application met en place un verrouillage de compte après plusieurs tentatives ratées, mais la logique est imparfaite. On peut s’en servir pour :

  1. Découvrir un nom d’utilisateur valide.

  2. Forcer brutalement son mot de passe.

  3. Accéder à sa page de compte.

Les listes fournies sont :

  • Le verrouillage du compte ne se produit que si le nom d’utilisateur est valide.

  • Pour les utilisateurs inexistants, même après plusieurs tentatives, le comportement reste différent (pas de vrai lock, même message/réponse).

  • On peut donc distinguer un utilisateur existant d’un utilisateur inexistant uniquement en observant les réponses.

1. Détection d’un nom d’utilisateur valide

  1. Envoyer les requêtes de login en mode Intruder avec la technique Cluster Bomb :

    • Un ensemble de candidats pour le champ username.

    • Un ensemble de mots de passe pour provoquer plusieurs échecs.

  2. Configurer une règle de correspondance (regex) pour filtrer les réponses qui contiennent le message :

    • Invalid username or password.

  • Analyser les résultats :

    • Les comptes invalides gardent un comportement uniforme.

    • Pour un compte valide, après un certain nombre d’essais ratés, la réponse change (verrouillage).

  1. En observant les réponses, on remarque que le nom d’utilisateur akamai se distingue des autres et révèle ce comportement lié au verrouillage de compte. → akamai est identifié comme nom d’utilisateur valide.

2. Brute-force du mot de passe du compte valide

  1. Une fois akamai identifié comme utilisateur valide, on relance Intruder en mode Sniper :

    • Le champ username reste fixé à akamai.

    • On fait varier uniquement le mot de passe avec la wordlist fournie (Authentication lab passwords).

  1. On examine à nouveau les réponses, en surveillant notamment :

    • Le code de statut HTTP.

    • La taille du corps de la réponse.

    • L’absence ou la modification du message d’erreur.

  2. Lors du test du mot de passe chelsea, la réponse est différente (par exemple, code HTTP différent par rapport aux autres tentatives). → On en déduit que le couple akamai / chelsea est correct.

Mis à jour