hacktricks/pentesting-web/account-takeover.md

8.9 KiB

Prise de contrôle de compte

{% hint style="success" %} Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Problème d'autorisation

L'email d'un compte doit être tenté d'être changé, et le processus de confirmation doit être examiné. S'il est jugé faible, l'email doit être changé pour celui de la victime prévue et ensuite confirmé.

Problème de normalisation Unicode

  1. Le compte de la victime prévue victim@gmail.com
  2. Un compte doit être créé en utilisant Unicode
    par exemple : vićtim@gmail.com

Comme expliqué dans cette présentation, l'attaque précédente pourrait également être réalisée en abusant des fournisseurs d'identité tiers :

  • Créer un compte chez le fournisseur d'identité tiers avec un email similaire à celui de la victime en utilisant un caractère unicode (vićtim@company.com).
  • Le fournisseur tiers ne doit pas vérifier l'email.
  • Si le fournisseur d'identité vérifie l'email, peut-être pouvez-vous attaquer la partie domaine comme : victim@ćompany.com et enregistrer ce domaine en espérant que le fournisseur d'identité génère la version ascii du domaine pendant que la plateforme de la victime normalise le nom de domaine.
  • Connectez-vous via ce fournisseur d'identité sur la plateforme de la victime qui devrait normaliser le caractère unicode et vous permettre d'accéder au compte de la victime.

Pour plus de détails, référez-vous au document sur la normalisation Unicode :

{% content-ref url="unicode-injection/unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}

Réutilisation du jeton de réinitialisation

Si le système cible permet que le lien de réinitialisation soit réutilisé, des efforts doivent être faits pour trouver plus de liens de réinitialisation en utilisant des outils tels que gau, wayback, ou scan.io.

Pré prise de contrôle de compte

  1. L'email de la victime doit être utilisé pour s'inscrire sur la plateforme, et un mot de passe doit être défini (une tentative de confirmation doit être faite, bien que l'absence d'accès aux emails de la victime puisse rendre cela impossible).
  2. Il faut attendre que la victime s'inscrive en utilisant OAuth et confirme le compte.
  3. On espère que l'inscription régulière sera confirmée, permettant l'accès au compte de la victime.

Mauvaise configuration CORS pour la prise de contrôle de compte

Si la page contient des mauvaises configurations CORS, vous pourriez être en mesure de voler des informations sensibles de l'utilisateur pour prendre le contrôle de son compte ou le faire changer ses informations d'authentification dans le même but :

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

CSRF pour la prise de contrôle de compte

Si la page est vulnérable au CSRF, vous pourriez être en mesure de faire modifier le mot de passe, l'email ou l'authentification de l'utilisateur afin que vous puissiez ensuite y accéder :

{% content-ref url="csrf-cross-site-request-forgery.md" %} csrf-cross-site-request-forgery.md {% endcontent-ref %}

XSS pour la prise de contrôle de compte

Si vous trouvez une XSS dans l'application, vous pourriez être en mesure de voler des cookies, du stockage local, ou des informations de la page web qui pourraient vous permettre de prendre le contrôle du compte :

{% content-ref url="xss-cross-site-scripting/" %} xss-cross-site-scripting {% endcontent-ref %}

Même origine + Cookies

Si vous trouvez une XSS limitée ou une prise de contrôle de sous-domaine, vous pourriez jouer avec les cookies (en les fixant par exemple) pour essayer de compromettre le compte de la victime :

{% content-ref url="hacking-with-cookies/" %} hacking-with-cookies {% endcontent-ref %}

Attaque sur le mécanisme de réinitialisation de mot de passe

{% content-ref url="reset-password.md" %} reset-password.md {% endcontent-ref %}

Manipulation de réponse

Si la réponse d'authentification peut être réduite à un simple booléen, essayez simplement de changer false en true et voyez si vous obtenez un accès.

OAuth pour la prise de contrôle de compte

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

Injection d'en-tête Host

  1. L'en-tête Host est modifié suite à l'initiation d'une demande de réinitialisation de mot de passe.
  2. L'en-tête proxy X-Forwarded-For est modifié en attacker.com.
  3. Les en-têtes Host, Referrer et Origin sont simultanément changés en attacker.com.
  4. Après avoir initié une réinitialisation de mot de passe et choisi de renvoyer le mail, toutes les trois méthodes mentionnées ci-dessus sont employées.

Manipulation de réponse

  1. Manipulation de code : Le code d'état est modifié en 200 OK.
  2. Manipulation de code et de corps :
  • Le code d'état est changé en 200 OK.
  • Le corps de la réponse est modifié en {"success":true} ou un objet vide {}.

Ces techniques de manipulation sont efficaces dans les scénarios où JSON est utilisé pour la transmission et la réception de données.

Changer l'email de la session actuelle

D'après ce rapport :

  • L'attaquant demande à changer son email avec un nouveau.
  • L'attaquant reçoit un lien pour confirmer le changement de l'email.
  • L'attaquant envoie le lien à la victime pour qu'elle clique dessus.
  • L'email de la victime est changé pour celui indiqué par l'attaquant.
  • L'attaquant peut récupérer le mot de passe et prendre le contrôle du compte.

Cela s'est également produit dans ce rapport.

Anciens Cookies

Comme expliqué dans ce post, il était possible de se connecter à un compte, de sauvegarder les cookies en tant qu'utilisateur authentifié, de se déconnecter, puis de se reconnecter.
Avec la nouvelle connexion, bien que des cookies différents puissent être générés, les anciens ont recommencé à fonctionner.

Références

{% hint style="success" %} Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}