Reverse Tab Nabbing

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

Andere Möglichkeiten, HackTricks zu unterstützen:

Beschreibung

In einer Situation, in der ein Angreifer das href-Argument eines <a-Tags mit dem Attribut target="_blank" rel="opener" kontrollieren kann, das von einem Opfer angeklickt wird, kann der Angreifer diesen Link auf eine von ihm kontrollierte Webseite (eine bösartige Website) verweisen. Sobald das Opfer den Link anklickt und die Webseite des Angreifers aufruft, kann diese bösartige Website die ursprüngliche Seite über das JavaScript-Objekt window.opener kontrollieren. Wenn die Seite kein **rel="opener" enthält, aber target="_blank" enthält und auch kein rel="noopener" hat, könnte sie ebenfalls anfällig sein.

Eine übliche Methode, um dieses Verhalten auszunutzen, besteht darin, die Position der ursprünglichen Webseite über window.opener.location = https://attacker.com/victim.html zu ändern, um auf eine vom Angreifer kontrollierte Webseite zu verweisen, die wie die ursprüngliche aussieht, damit sie das Anmeldeformular der ursprünglichen Webseite imitieren und nach Anmeldeinformationen des Benutzers fragen kann.

Beachten Sie jedoch, dass der Angreifer nun das Fensterobjekt der ursprünglichen Webseite kontrollieren kann, und er kann es auf andere Weise missbrauchen, um heimlichere Angriffe durchzuführen (vielleicht durch Modifizierung von JavaScript-Ereignissen, um Informationen an einen von ihm kontrollierten Server zu exfiltrieren?).

Übersicht

Mit Rückverweis

Verbindung zwischen Eltern- und Kindseiten, wenn das Präventionsattribut nicht verwendet wird:

Ohne Rückverweis

Verbindung zwischen Eltern- und Kindseiten, wenn das Präventionsattribut verwendet wird:

Beispiele

Erstellen Sie die folgenden Seiten in einem Ordner und starten Sie einen Webserver mit python3 -m http.server Rufen Sie dann http://127.0.0.1:8000/vulnerable.html auf, klicken Sie auf den Link und beachten Sie, wie sich die URL der ursprünglichen Website ändert.

vulnerable.html
<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>
bösartig.html
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
bösartige_weiterleitung.html
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>

Zugängliche Eigenschaften

Im Szenario eines Cross-Origin-Zugriffs (Zugriff über verschiedene Domains hinweg) sind die Eigenschaften der window-JavaScript-Klasseninstanz, auf die von einer bösartigen Website zugegriffen werden kann und die vom opener-JavaScript-Objektverweis verwiesen wird, auf die folgenden beschränkt:

  • opener.closed: Diese Eigenschaft wird abgefragt, um festzustellen, ob ein Fenster geschlossen wurde, und gibt einen booleschen Wert zurück.

  • opener.frames: Diese Eigenschaft ermöglicht den Zugriff auf alle iframe-Elemente im aktuellen Fenster.

  • opener.length: Diese Eigenschaft gibt die Anzahl der im aktuellen Fenster vorhandenen iframe-Elemente zurück.

  • opener.opener: Über diese Eigenschaft kann eine Referenz auf das Fenster abgerufen werden, das das aktuelle Fenster geöffnet hat.

  • opener.parent: Diese Eigenschaft gibt das übergeordnete Fenster des aktuellen Fensters zurück.

  • opener.self: Über diese Eigenschaft wird der Zugriff auf das aktuelle Fenster selbst ermöglicht.

  • opener.top: Diese Eigenschaft gibt das oberste Browserfenster zurück.

In Fällen, in denen die Domains identisch sind, erhält die bösartige Website Zugriff auf alle von der window-JavaScript-Objektreferenz bereitgestellten Eigenschaften.

Prävention

Informationen zur Prävention sind in der HTML5 Cheat Sheet dokumentiert.

Referenzen

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

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated