DOM Invader

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

Andere Möglichkeiten, HackTricks zu unterstützen:

DOM Eindringling

DOM Eindringling ist ein Browser-Tool, das im integrierten Browser von Burp installiert ist. Es hilft bei der Erkennung von DOM-XSS-Schwachstellen unter Verwendung verschiedener Quellen und Senken, einschließlich Webnachrichten und Prototypenverunreinigung. Das Tool ist als Erweiterung vorinstalliert.

DOM Eindringling integriert einen Tab im DevTools-Panel des Browsers, der Folgendes ermöglicht:

  1. Identifizierung von steuerbaren Senken auf einer Webseite für DOM-XSS-Tests, Bereitstellung von Kontext- und Säuberungsdetails.

  2. Protokollierung, Bearbeitung und erneutes Senden von Webnachrichten, die über die Methode postMessage() gesendet wurden, für DOM-XSS-Tests. DOM Eindringling kann auch Schwachstellen automatisch erkennen, die mithilfe speziell erstellter Webnachrichten erstellt wurden.

  3. Erkennung von Quellen für clientseitige Prototypenverunreinigung und Scannen von steuerbaren Geräten, die an gefährliche Senken gesendet werden.

  4. Identifizierung von DOM-Überschreibungs-Schwachstellen.

Aktivieren

Gehen Sie im integrierten Browser von Burp zu der Burp-Erweiterung und aktivieren Sie sie:

Aktualisieren Sie nun die Seite und im DevTools finden Sie den DOM Eindringling-Tab:

Einfügen eines Kanarienvogels

Im vorherigen Bild können Sie eine zufällige Gruppe von Zeichen sehen, das ist der Kanarienvogel. Sie sollten ihn jetzt beginnen, in verschiedenen Teilen des Webs einzufügen (Parameter, Formulare, URL...) und jedes Mal darauf klicken. DOM Eindringling überprüft, ob der Kanarienvogel in einer interessanten Senke gelandet ist, die ausgenutzt werden könnte.

Darüber hinaus werden die Optionen URL-Parameter einfügen und Formulare einfügen automatisch einen neuen Tab öffnen, in dem der Kanarienvogel in jedem URL-Parameter und Formular eingefügt wird, den er findet.

Einfügen eines leeren Kanarienvogels

Wenn Sie nur potenzielle Senken finden möchten, die die Seite haben könnte, auch wenn sie nicht ausnutzbar sind, können Sie nach einem leeren Kanarienvogel suchen.

Nachrichten senden

DOM Eindringling ermöglicht das Testen von DOM-XSS mithilfe von Webnachrichten mit Funktionen wie:

  1. Protokollierung von Webnachrichten, die über postMessage() gesendet wurden, ähnlich der Protokollierung des HTTP-Anforderungs-/Antwortverlaufs von Burp Proxy.

  2. Änderung und Neuausstellung von Webnachrichten, um manuell auf DOM-XSS zu testen, ähnlich der Funktion von Burp Repeater.

  3. Automatische Änderung und Senden von Webnachrichten zum Sondieren von DOM-XSS.

Nachrichtendetails

Detaillierte Informationen zu jeder Nachricht können durch Klicken darauf angezeigt werden, einschließlich der Frage, ob das clientseitige JavaScript auf die Eigenschaften origin, data oder source der Nachricht zugreift.

  • origin : Wenn die Herkunftsinformation der Nachricht nicht überprüft wird, können Sie möglicherweise Cross-Origin-Nachrichten an den Ereignisbehandler von einer beliebigen externen Domain senden. Aber selbst wenn dies überprüft wird, könnte es unsicher sein.

  • data: Hier wird die Nutzlast gesendet. Wenn diese Daten nicht verwendet werden, ist die Senke nutzlos.

  • source: Überprüft, ob die Quelleigenschaft, die normalerweise auf ein iFrame verweist, anstelle der Herkunft validiert wird. Selbst wenn dies überprüft wird, garantiert dies nicht, dass die Validierung umgangen werden kann.

Eine Nachricht beantworten

  1. Klicken Sie in der Nachrichten-Ansicht auf eine Nachricht, um den Dialog mit den Nachrichtendetails zu öffnen.

  2. Bearbeiten Sie das Feld Daten wie erforderlich.

  3. Klicken Sie auf Senden.

Prototypenverunreinigung

DOM Eindringling kann auch nach Prototypenverunreinigungsschwachstellen suchen. Zuerst müssen Sie es aktivieren:

Dann wird es nach Quellen suchen, die es Ihnen ermöglichen, beliebige Eigenschaften zum Object.prototype hinzuzufügen.

Wenn etwas gefunden wird, wird eine Test-Schaltfläche angezeigt, um die gefundene Quelle zu testen. Klicken Sie darauf, es wird ein neuer Tab geöffnet, erstellen Sie ein Objekt in der Konsole und überprüfen Sie, ob die testproperty existiert:

let b = {}
b.testproperty

Sobald Sie eine Quelle gefunden haben, können Sie nach einem Gadget scannen:

  1. Ein neuer Tab wird von DOM Invader geöffnet, wenn die Schaltfläche Nach Gadgets scannen angeklickt wird, die neben jeder identifizierten Quelle für Prototypenverschmutzung in der DOM-Ansicht gefunden werden kann. Die Suche nach geeigneten Gadgets beginnt dann.

  2. In der Zwischenzeit sollte im selben Tab der DOM Invader-Tab im DevTools-Panel geöffnet sein. Nach Abschluss des Scans werden alle über die identifizierten Gadgets zugänglichen Sinks in der DOM-Ansicht angezeigt. Zum Beispiel wird im folgenden Beispiel eine Gadget-Eigenschaft namens html, die an den innerHTML-Sink übergeben wird, angezeigt.

DOM-Überlagerung

Im vorherigen Bild ist es möglich zu sehen, dass der Scan für DOM-Überlagerung aktiviert werden kann. Sobald dies erledigt ist, beginnt DOM Invader mit der Suche nach DOM-Überlagerungsschwachstellen.

Referenzen

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

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated