hacktricks/pentesting-web/account-takeover.md

8.9 KiB

Account Takeover

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Autorisierungsproblem

Die E-Mail eines Kontos sollte versucht werden zu ändern, und der Bestätigungsprozess muss überprüft werden. Wenn er als schwach befunden wird, sollte die E-Mail in 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 Drittanbieter-Identitätsanbietern durchgeführt werden:

  • Erstellen Sie ein Konto beim Drittanbieter 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 überprüfen.
  • Wenn der Identitätsanbieter die E-Mail überprüft, können Sie möglicherweise den Domain-Teil angreifen, z. B. victim@ćompany.com, und diese Domain registrieren und hoffen, dass der Identitätsanbieter die ASCII-Version des Domainnamens generiert, während die Opferplattform den Domainnamen normalisiert.
  • Melden Sie sich über diesen Identitätsanbieter auf der Opferplattform an, die das Unicode-Zeichen normalisieren sollte und Ihnen den Zugriff auf das Opferkonto ermöglicht.

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 Zurücksetzungs-Token

Sollte das Zielsystem das Wiederverwenden des Zurücksetzungslinks zulassen, sollten Anstrengungen unternommen werden, um weitere Zurücksetzungslinks zu finden, indem Tools wie gau, wayback oder scan.io verwendet werden.

Vor 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 fehlende 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 normale 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önnten Sie in der Lage sein, sensible Informationen vom Benutzer zu stehlen, um sein Konto zu übernehmen oder ihn dazu zu bringen, die Authentifizierungsinformationen zu ändern:

{% 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önnten Sie den Benutzer dazu bringen, sein Passwort, seine E-Mail oder Authentifizierung zu ändern, um dann darauf zugreifen zu können:

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

XSS zur Kontoübernahme

Wenn Sie eine XSS in der Anwendung finden, könnten Sie Cookies, den lokalen Speicher oder Informationen von der Webseite stehlen, die es Ihnen ermöglichen könnten, das Konto zu übernehmen:

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

Same Origin + Cookies

Wenn Sie eine begrenzte XSS oder eine Subdomain-Übernahme finden, könnten Sie mit den Cookies spielen (zum Beispiel sie fixieren), um zu versuchen, das Opferkonto zu gefährden:

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

Angriff auf den Passwort-Zurücksetzungsmechanismus

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

Antwortmanipulation

Wenn die Authentifizierungsantwort auf ein einfaches Boolesches reduziert werden kann, versuchen Sie einfach, false in true zu ändern und sehen Sie, ob Sie Zugriff erhalten.

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ücksetzungsanforderung geändert.
  2. Der X-Forwarded-For-Proxy-Header wird auf attacker.com geändert.
  3. Der Host-, Referrer- und Origin-Header werden gleichzeitig auf attacker.com geändert.
  4. Nach der Initiierung eines Passwort-Resets und dem anschließenden erneuten Senden der E-Mail werden alle drei oben genannten Methoden angewendet.

Antwortmanipulation

  1. Code-Manipulation: Der Statuscode wird auf 200 OK geändert.
  2. Code- und Body-Manipulation:
  • Der Statuscode wird auf 200 OK geändert.
  • Der Antwort-Body wird auf {"success":true} oder ein leeres Objekt {} geändert.

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

Ändern der E-Mail der aktuellen Sitzung

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 er darauf klickt.
  • Die E-Mail des Opfers wird auf die vom Angreifer angegebene geändert.
  • Der Angreifer kann das Passwort wiederherstellen 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 auszuloggen und sich dann erneut einzuloggen.
Mit dem neuen Login könnten zwar unterschiedliche Cookies generiert werden, aber die alten begannen wieder zu funktionieren.

Referenzen

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: