hacktricks/pentesting-web/reset-password.md

164 lines
11 KiB
Markdown

# Contournement de réinitialisation/mot de passe oublié
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
Autres façons de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
</details>
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des pirates expérimentés et des chasseurs de primes !
**Perspectives de piratage**\
Engagez-vous avec du contenu qui explore le frisson et les défis du piratage
**Actualités de piratage en temps réel**\
Restez informé du monde du piratage en temps réel grâce aux actualités et aux perspectives
**Dernières annonces**\
Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme
**Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs pirates dès aujourd'hui !
## **Fuite de jeton de réinitialisation de mot de passe via le référent**
* L'en-tête HTTP referer peut divulguer le jeton de réinitialisation de mot de passe s'il est inclus dans l'URL. Cela peut se produire lorsqu'un utilisateur clique sur un lien de site Web tiers après avoir demandé une réinitialisation de mot de passe.
* **Impact** : Perte potentielle de compte via des attaques de falsification de requête intersite (CSRF).
* **Références** :
* [Rapport HackerOne 342693](https://hackerone.com/reports/342693)
* [Rapport HackerOne 272379](https://hackerone.com/reports/272379)
* [Article sur la fuite de jeton de réinitialisation de mot de passe](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Empoisonnement de réinitialisation de mot de passe**
* Les attaquants peuvent manipuler l'en-tête Host lors des demandes de réinitialisation de mot de passe pour pointer le lien de réinitialisation vers un site malveillant.
* **Correctif** : Utilisez `$_SERVER['SERVER_NAME']` pour construire les URL de réinitialisation de mot de passe au lieu de `$_SERVER['HTTP_HOST']`.
* **Impact** : Conduit à une perte potentielle de compte en divulguant des jetons de réinitialisation aux attaquants.
* **Étapes d'atténuation** :
* Valider l'en-tête Host par rapport à une liste blanche de domaines autorisés.
* Utiliser des méthodes sécurisées côté serveur pour générer des URL absolues.
* **Références** :
* [Article d'Acunetix sur l'empoisonnement de réinitialisation de mot de passe](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Réinitialisation de mot de passe en manipulant le paramètre d'e-mail**
* Les attaquants peuvent manipuler la demande de réinitialisation de mot de passe en ajoutant des paramètres d'e-mail supplémentaires pour détourner le lien de réinitialisation.
* **Étapes d'atténuation** :
* Analyser et valider correctement les paramètres d'e-mail côté serveur.
* Utiliser des instructions préparées ou des requêtes paramétrées pour prévenir les attaques par injection.
* **Références** :
* [Prise de contrôle de compte Readme.com](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
## **Changement d'e-mail et de mot de passe de tout utilisateur via les paramètres API**
* Les attaquants peuvent modifier les paramètres d'e-mail et de mot de passe dans les demandes API pour changer les informations d'identification du compte.
* **Étapes d'atténuation** :
* Assurer une validation stricte des paramètres et des vérifications d'authentification.
* Mettre en place une journalisation et une surveillance robustes pour détecter et répondre aux activités suspectes.
* **Référence** :
* [Prise de contrôle complète du compte via la manipulation des paramètres API](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **Absence de limitation de taux : bombardement d'e-mails**
* Le manque de limitation de taux sur les demandes de réinitialisation de mot de passe peut entraîner un bombardement d'e-mails, submergeant l'utilisateur de courriels de réinitialisation.
* **Étapes d'atténuation** :
* Mettre en place une limitation de taux basée sur l'adresse IP ou le compte utilisateur.
* Utiliser des défis CAPTCHA pour prévenir les abus automatisés.
* **Références** :
* [Rapport HackerOne 280534](https://hackerone.com/reports/280534)
## **Découvrez comment le jeton de réinitialisation de mot de passe est généré**
* Comprendre le motif ou la méthode derrière la génération de jetons peut permettre de prédire ou de forcer les jetons.
* **Étapes d'atténuation** :
* Utiliser des méthodes cryptographiques robustes pour la génération de jetons.
* Assurer une aléatoire suffisante et une longueur adéquate pour éviter la prévisibilité.
* **Outils** : Utilisez Burp Sequencer pour analyser l'aléatoire des jetons.
## **GUID devinable**
* Si les GUID (par exemple, version 1) sont devinables ou prévisibles, les attaquants peuvent les forcer pour générer des jetons de réinitialisation valides.
* **Étapes d'atténuation** :
* Utiliser le GUID version 4 pour l'aléatoire ou mettre en place des mesures de sécurité supplémentaires pour les autres versions.
* **Outils** : Utilisez [guidtool](https://github.com/intruder-io/guidtool) pour analyser et générer des GUID.
## **Manipulation de réponse : Remplacer une mauvaise réponse par une bonne**
* Manipuler les réponses HTTP pour contourner les messages d'erreur ou les restrictions.
* **Étapes d'atténuation** :
* Mettre en place des vérifications côté serveur pour assurer l'intégrité des réponses.
* Utiliser des canaux de communication sécurisés comme HTTPS pour prévenir les attaques de l'homme du milieu.
* **Référence** :
* [Bug critique dans un événement de prime de bugs en direct](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Utilisation d'un jeton expiré**
* Tester si les jetons expirés peuvent toujours être utilisés pour la réinitialisation du mot de passe.
* **Étapes d'atténuation** :
* Mettre en place des politiques strictes d'expiration des jetons et valider l'expiration des jetons côté serveur.
## **Forcer le jeton de réinitialisation de mot de passe par force brute**
* Tenter de forcer le jeton de réinitialisation en utilisant des outils comme Burpsuite et IP-Rotator pour contourner les limites de taux basées sur l'IP.
* **Étapes d'atténuation** :
* Mettre en place des mécanismes robustes de limitation de taux et de verrouillage de compte.
* Surveiller les activités suspectes indiquant des attaques par force brute.
## **Essayer d'utiliser votre jeton**
* Tester si le jeton de réinitialisation d'un attaquant peut être utilisé en conjonction avec l'e-mail de la victime.
* **Étapes d'atténuation** :
* Veiller à ce que les jetons soient liés à la session utilisateur ou à d'autres attributs spécifiques à l'utilisateur.
## **Invalidation de session lors de la déconnexion/réinitialisation de mot de passe**
* S'assurer que les sessions sont invalidées lorsqu'un utilisateur se déconnecte ou réinitialise son mot de passe.
* **Étapes d'atténuation** :
* Mettre en place une gestion de session appropriée, en veillant à ce que toutes les sessions soient invalidées lors de la déconnexion ou de la réinitialisation du mot de passe.
## **Invalidation de session lors de la déconnexion/réinitialisation de mot de passe**
* Les jetons de réinitialisation doivent avoir une durée d'expiration après laquelle ils deviennent invalides.
* **Étapes d'atténuation** :
* Définir une durée d'expiration raisonnable pour les jetons de réinitialisation et les appliquer strictement côté serveur.
## Références
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes en bugs !
**Perspicacité en piratage**\
Engagez-vous avec du contenu qui explore le frisson et les défis du piratage
**Actualités de piratage en temps réel**\
Restez à jour avec le monde du piratage en évolution rapide grâce aux actualités et aux informations en temps réel
**Dernières annonces**\
Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme
**Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui !
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
Autres façons de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
</details>