Logique défaillante dans la réinitialisation de mot de passe

Password reset broken logic

Le laboratoire présente une vulnérabilité dans le mécanisme de réinitialisation de mot de passe. L’objectif consiste à réinitialiser le mot de passe de Carlos, puis à accéder à sa page My account. Identifiants fournis :

  • wiener:peter

  • Nom d’utilisateur de la victime : carlos

Analyse et étapes

1. Fonction « Mot de passe oublié »

L’application propose une fonctionnalité de récupération via Forgot password.

Depuis cette section, il est possible de modifier l’adresse email associée au compte

2. Réception du mail de réinitialisation

Une fois l’email changé, un message contenant un lien de réinitialisation est envoyé. Le mail inclut un token temporaire dans l’URL :

3. Soumission du formulaire

En accédant à ce lien, l’application demande d’entrer un nouveau mot de passe. Les paramètres envoyés sont semblables à :

4. Exploitation de la logique défectueuse

Le serveur ne vérifie pas que le token correspond réellement à l’utilisateur mentionné dans la requête. Il suffit de remplacer le champ username=wiener par username=carlos :

L’application accepte la demande, ce qui permet de définir un nouveau mot de passe pour Carlos.

Mis à jour