Web Security Academy

Authentication - Lab : Username enumeration via account lock

Objectif :

  • Réussir à se connecter sur un compte utilisateur qui nous appartient pas dans le site en contournant la mesure de sécurité mise en place.

Solution :

On lance le lab et on se retrouve dans la première page d'un blog.

On clique ensuite sur login pour accéder à la page de connexion :

On essaye de rentrer des informations au hasard pour observer comment le serveur nous répond. Le message d'erreur "Invalid username or password" apparaît sur la page :

Pour commencer, on va essayer de trouver un username valide. Il se peut que le serveur bloque un compte si un grand nombre de tentatives de connexion sont effectuées vers celui-ci et qu'il nous en informe. Cela prouvera que le nom de compte en question existe.

On va tenter une attaque de type brute-force sur le champ "Username" avec l'outil Burp Intruder du logiciel Burp Suite. On va utiliser une wordlist pouvant être récupérée ici : https://portswigger.net/web-security/authentication/auth-lab-usernames ). Chaque entrée de la liste de mots sera testée 7 fois.

On effectue l'attaque et on trouve qu'avec le nom de compte "ajax", le serveur nous envoie comme message : "You have made too many incorrect login attempts. Please try again in 1 minute(s)" à partir de la 4ème tentative. On sait donc que le nom de compte "ajax" existe.

On garde ce nom de compte et on tente de "bruteforcer" le champ "Password" en gardant le nom de compte trouvé. La wordlist utilisée est celle-ci : https://portswigger.net/web-security/authentication/auth-lab-passwords ).

On trouve qu'avec le mot de passe "123qwe", il n'y a pas de message d'erreur qui s'affiche.

On attend que le compte ( ayant comme identifiant "ajax" ) se débloque puis on essaie de se connecter avec le mot de passe trouvé et ça fonctionne ! On a réussit à accéder à un compte du site.

Il suffit maintenant de cliquer "My account" pour valider le lab.