hacktricks/pentesting-web/2fa-bypass.md
2023-06-03 13:10:46 +00:00

5.9 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Contournement de l'authentification à deux facteurs

Contournement direct

Pour contourner la 2FA, il suffit de tenter d'accéder directement à l'endpoint suivant (vous devez connaître le chemin de l'endpoint suivant). Si cela ne fonctionne pas, essayez de changer l'en-tête Referrer comme si vous veniez de la page 2FA.

Réutilisation de jeton

Peut-être pouvez-vous réutiliser un jeton précédemment utilisé à l'intérieur du compte pour vous authentifier.

Partage de jetons inutilisés

Vérifiez si vous pouvez obtenir le jeton de votre compte et essayez de l'utiliser pour contourner la 2FA dans un compte différent.

Jeton divulgué

Le jeton est-il divulgué dans une réponse de l'application web ?

Permission de session

En utilisant la même session, démarrez le flux en utilisant votre compte et le compte de la victime. Lorsque vous atteignez le point 2FA sur les deux comptes, complétez le 2FA avec votre compte mais n'accédez pas à la partie suivante. Au lieu de cela, essayez d'accéder à l'étape suivante avec le flux du compte de la victime. Si le back-end ne définit qu'un booléen dans vos sessions indiquant que vous avez réussi à passer le 2FA, vous pourrez contourner la 2FA de la victime.

Fonction de réinitialisation de mot de passe

Dans presque toutes les applications web, la fonction de réinitialisation de mot de passe connecte automatiquement l'utilisateur à l'application après que la procédure de réinitialisation est terminée.
Vérifiez si un e-mail est envoyé avec un lien pour réinitialiser le mot de passe et si vous pouvez réutiliser ce lien pour réinitialiser le mot de passe autant de fois que vous le souhaitez (même si la victime change son adresse e-mail).

OAuth

Si vous pouvez compromettre le compte de l'utilisateur dans une plateforme OAuth de confiance (Google, Facebook...).

Brute force

Absence de limite de taux

Y a-t-il une limite sur le nombre de codes que vous pouvez essayer, de sorte que vous pouvez simplement le brute forcer ? Soyez prudent avec une possible limite de taux "silencieuse", essayez toujours plusieurs codes puis le vrai pour confirmer la vulnérabilité.

Limite de débit de flux mais pas de limite de taux

Dans ce cas, il y a une limite de débit de flux (vous devez le brute forcer très lentement : 1 thread et un peu de sommeil avant 2 essais) mais pas de limite de taux. Donc, avec suffisamment de temps, vous pouvez être en mesure de trouver le code valide.

Renvoi du code et réinitialisation de la limite

Il y a une limite de taux mais lorsque vous "renvoyez le code", le même code est envoyé et la limite de taux est réinitialisée. Ensuite, vous pouvez brute forcer le code pendant que vous le renvoyez afin que la limite de taux ne soit jamais atteinte.

Contournement de la limite de taux côté client

{% content-ref url="rate-limit-bypass.md" %} rate-limit-bypass.md {% endcontent-ref %}

Absence de limite de taux dans le compte de l'utilisateur

Parfois, vous pouvez configurer la 2FA pour certaines actions à l'intérieur de votre compte (changer de courrier, de mot de passe...). Cependant, même dans les cas où il y a une limite de taux lorsque vous avez essayé de vous connecter, il n'y a pas de limite de taux pour protéger les actions à l'intérieur du compte.

Absence de limite de taux lors de la réexpédition du code via SMS

Vous ne pourrez pas contourner la 2FA, mais vous pourrez gaspiller l'argent de l'entreprise.

Régénération infinie de OTP

Si vous pouvez générer un nouveau OTP un nombre infini de fois, que l'OTP est assez simple (4 chiffres), et que vous pouvez essayer jusqu'à 4 ou 5 jetons par OTP généré, vous pouvez simplement essayer les mêmes 4 ou 5 jetons à chaque fois et générer des OTP jusqu'à ce qu'ils correspondent à ceux que vous utilisez.

CSRF/Clickjacking

Vérifiez s'il existe une vulnérabilité de Cross Site Request Forgery (CSRF) ou de Clickjacking pour désactiver la 2FA.

Fonctionnalité de mémorisation

Si la fonctionnalité "se souvenir de moi" utilise un nouveau cookie avec un code devinable, essayez de le deviner.

Adresse IP

Si la fonctionnalité "se souvenir de moi" est attachée à votre adresse IP,