Empoisonnement basique du mécanisme de réinitialisation de mot de passe
Basic password reset poisoning
Description du laboratoire
Ce laboratoire présente une vulnérabilité d’empoisonnement du processus de réinitialisation de mot de passe. L’utilisateur carlos clique sans précaution sur tous les liens reçus par email.
Objectif :
Exploiter cette faille afin de récupérer un lien de réinitialisation valide
Se connecter au compte de carlos
Identifiants fournis :
Utilisateur : wiener
Mot de passe : peter
Tous les emails envoyés à ce compte sont consultables via le client mail de l’exploit server.
Observation initiale
L’application propose une fonctionnalité “Forgot password” permettant de demander une réinitialisation de mot de passe à partir d’un nom d’utilisateur.

Lorsque l’on saisit l’utilisateur wiener, un email de réinitialisation est correctement envoyé.


Analyse de la requête backend
La requête HTTP envoyée lors de la demande de réinitialisation est la suivante :

Test de manipulation du Host
En remplaçant la valeur du header Host par un domaine arbitraire (par exemple test.com), le serveur traite toujours la requête comme valide et génère le lien de réinitialisation à partir de ce Host modifié.
vemos que la pagina me lo interpreta igual el contenido de la pagina del host normal

Cela confirme une confiance excessive dans l’en-tête Host.
Exploitation de la vulnérabilité
L’attaque consiste à :
Modifier le header
Hostpour y placer le domaine de l’exploit serverDemander une réinitialisation pour l’utilisateur carlos
Requête exploitée :
Résultat
Le serveur génère un lien de réinitialisation basé sur le Host contrôlé par l’attaquant
L’utilisateur carlos clique sur ce lien piégé reçu par email
Le token de réinitialisation est alors visible dans les logs de l’exploit server
Il est possible de définir un nouveau mot de passe pour le compte carlos
Connexion réussie au compte ciblé

Mis à jour