Protection cassée : plusieurs identifiants par requête

Broken brute-force protection, multiple credentials per request

Ce laboratoire présente une faille logique dans le mécanisme de protection contre les attaques par force brute. L’objectif est de retrouver le mot de passe de l’utilisateur Carlos et d’accéder à sa page My account.

  • Utilisateur cible : carlos

  • Liste de mots de passe candidats : fournie par le laboratoire

  • Point d’entrée : formulaire de connexion

Observation du fonctionnement

Lors de l’analyse du formulaire de connexion, on constate que la requête envoyée au serveur est au format JSON, avec les champs suivants :

La protection anti-bruteforce semble reposer sur le nombre de requêtes HTTP envoyées, et non sur le nombre de tentatives de mots de passe réellement testées.

Exploitation de la faille logique

Au lieu d’envoyer une requête par mot de passe, il est possible de transmettre plusieurs mots de passe dans une seule requête, en utilisant un tableau JSON pour le champ password.

Le serveur accepte la requête et teste l’ensemble des mots de passe contenus dans le tableau, sans déclencher de mécanisme de blocage.

Mis à jour