hacktricks/pentesting-web/account-takeover.md

8.7 KiB

Kontoübernahme

{% hint style="success" %} Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstütze HackTricks
{% endhint %}

Autorisierungsproblem

Die E-Mail eines Kontos sollte versucht werden zu ändern, und der Bestätigungsprozess muss untersucht werden. Wenn er als schwach befunden wird, sollte die E-Mail auf die des beabsichtigten Opfers geändert und dann bestätigt werden.

Unicode-Normalisierungsproblem

  1. Das Konto des beabsichtigten Opfers victim@gmail.com
  2. Ein Konto sollte unter Verwendung von Unicode erstellt werden
    zum Beispiel: vićtim@gmail.com

Wie in diesem Vortrag erklärt, könnte der vorherige Angriff auch durch den Missbrauch von Identitätsanbietern Dritter durchgeführt werden:

  • Erstelle ein Konto beim Identitätsanbieter Dritter mit einer ähnlichen E-Mail wie die des Opfers unter Verwendung eines Unicode-Zeichens (vićtim@company.com).
  • Der Drittanbieter sollte die E-Mail nicht verifizieren.
  • Wenn der Identitätsanbieter die E-Mail verifiziert, kannst du vielleicht den Domainteil angreifen, wie: victim@ćompany.com und diese Domain registrieren und hoffen, dass der Identitätsanbieter die ASCII-Version der Domain generiert, während die Opferplattform den Domainnamen normalisiert.
  • Melde dich über diesen Identitätsanbieter auf der Opferplattform an, die das Unicode-Zeichen normalisieren und dir den Zugriff auf das Opferkonto ermöglichen sollte.

Für weitere Details siehe das Dokument zur Unicode-Normalisierung:

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

Wiederverwendung des Rücksetztokens

Sollte das Zielsystem den Rücksetzlink zur Wiederverwendung zulassen, sollten Anstrengungen unternommen werden, um weitere Rücksetzlinks zu finden mit Tools wie gau, wayback oder scan.io.

Vor der Kontoübernahme

  1. Die E-Mail des Opfers sollte verwendet werden, um sich auf der Plattform anzumelden, und ein Passwort sollte festgelegt werden (ein Versuch, es zu bestätigen, sollte unternommen werden, obwohl der Mangel an Zugriff auf die E-Mails des Opfers dies unmöglich machen könnte).
  2. Man sollte warten, bis das Opfer sich über OAuth anmeldet und das Konto bestätigt.
  3. Es wird gehofft, dass die reguläre Anmeldung bestätigt wird, was den Zugriff auf das Konto des Opfers ermöglicht.

CORS-Fehlkonfiguration zur Kontoübernahme

Wenn die Seite CORS-Fehlkonfigurationen enthält, könntest du in der Lage sein, sensible Informationen vom Benutzer zu stehlen, um sein Konto zu übernehmen oder ihn dazu zu bringen, Authentifizierungsinformationen zu ändern, um dasselbe Ziel zu erreichen:

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

CSRF zur Kontoübernahme

Wenn die Seite anfällig für CSRF ist, könntest du in der Lage sein, den Benutzer dazu zu bringen, sein Passwort, seine E-Mail oder seine Authentifizierung zu ändern, sodass du dann darauf zugreifen kannst:

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

XSS zur Kontoübernahme

Wenn du ein XSS in der Anwendung findest, könntest du in der Lage sein, Cookies, lokalen Speicher oder Informationen von der Webseite zu stehlen, die dir die Übernahme des Kontos ermöglichen könnten:

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

Gleiche Herkunft + Cookies

Wenn du ein begrenztes XSS oder eine Subdomain-Übernahme findest, könntest du mit den Cookies spielen (zum Beispiel sie fixieren), um zu versuchen, das Konto des Opfers zu kompromittieren:

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

Angriff auf den Passwortzurücksetzmechanismus

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

Antwortmanipulation

Wenn die Authentifizierungsantwort auf ein einfaches Boolean reduziert werden kann, versuche einfach, false in true zu ändern und zu sehen, ob du Zugriff erhältst.

OAuth zur Kontoübernahme

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

Host-Header-Injection

  1. Der Host-Header wird nach der Initiierung einer Passwortzurücksetzung geändert.
  2. Der X-Forwarded-For Proxy-Header wird auf attacker.com geändert.
  3. Die Host-, Referrer- und Origin-Header werden gleichzeitig auf attacker.com geändert.
  4. Nach der Initiierung einer Passwortzurücksetzung und der Entscheidung, die E-Mail erneut zu senden, werden alle drei der oben genannten Methoden angewendet.

Antwortmanipulation

  1. Code-Manipulation: Der Statuscode wird auf 200 OK geändert.
  2. Code- und Körpermanipulation:
  • Der Statuscode wird auf 200 OK geändert.
  • Der Antwortkörper wird auf {"success":true} oder ein leeres Objekt {} geändert.

Diese Manipulationstechniken sind effektiv in Szenarien, in denen JSON für die Datenübertragung und -empfang verwendet wird.

E-Mail der aktuellen Sitzung ändern

Aus diesem Bericht:

  • Der Angreifer fordert an, seine E-Mail mit einer neuen zu ändern.
  • Der Angreifer erhält einen Link zur Bestätigung der Änderung der E-Mail.
  • Der Angreifer sendet dem Opfer den Link, damit es darauf klickt.
  • Die E-Mail des Opfers wird auf die vom Angreifer angegebene geändert.
  • Der Angreifer kann das Passwort zurücksetzen und das Konto übernehmen.

Dies geschah auch in diesem Bericht.

Alte Cookies

Wie in diesem Beitrag erklärt, war es möglich, sich in ein Konto einzuloggen, die Cookies als authentifizierter Benutzer zu speichern, sich abzumelden und dann erneut einzuloggen.
Mit dem neuen Login, obwohl unterschiedliche Cookies generiert werden könnten, begannen die alten wieder zu funktionieren.

Referenzen

{% hint style="success" %} Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstütze HackTricks
{% endhint %}