DOM Invader

Unterstütze HackTricks

DOM Invader

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

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

  1. Identifizierung von kontrollierbaren Senken auf einer Webseite für DOM XSS-Tests, die Kontext- und Sanitierungsdetails bereitstellt.

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

  3. Erkennung von client-seitigen Prototyp-Verschmutzungs-Quellen und Scannen von kontrollierbaren Gadgets, die an riskante Senken gesendet werden.

  4. Identifizierung von DOM-Clobbering-Schwachstellen.

Aktiviere es

Gehe im integrierten Browser von Burp zur Burp-Erweiterung und aktiviere sie:

Jetzt aktualisiere die Seite und im Dev Tools findest du den DOM Invader-Tab:

Injiziere einen Canary

Im vorherigen Bild siehst du eine zufällige Gruppe von Zeichen, das ist der Canary. Du solltest jetzt beginnen, ihn in verschiedenen Teilen des Webs (Parameter, Formulare, URL...) zu injizieren und jedes Mal auf Suchen klicken. DOM Invader wird überprüfen, ob der Canary in einer interessanten Senke endet, die ausgenutzt werden könnte.

Darüber hinaus öffnen die Optionen Inject URL params und Inject forms automatisch einen neuen Tab, der den Canary in jeden URL-Parameter und Formular injiziert, den er findet.

Injiziere einen leeren Canary

Wenn du nur potenzielle Senken finden möchtest, die die Seite haben könnte, auch wenn sie nicht ausnutzbar sind, kannst du nach einem leeren Canary suchen.

Post-Nachrichten

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

  1. Protokollierung von Webnachrichten, die über postMessage() gesendet werden, ähnlich wie die Protokollierung der HTTP-Anfrage-/Antworthistorie von Burp Proxy.

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

  3. Automatische Änderung und das Senden von Webnachrichten zur Überprüfung von DOM XSS.

Nachrichtendetails

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

  • origin : Wenn die Ursprungsinformationen der Nachricht nicht überprüft werden, kannst du möglicherweise Cross-Origin-Nachrichten an den Ereignishandler von einer beliebigen externen Domain senden. Aber wenn es überprüft wird, könnte es trotzdem unsicher sein.

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

  • source: Bewertet, ob die Quell-Eigenschaft, die normalerweise auf ein iframe verweist, validiert wird, anstatt des Ursprungs. Selbst wenn dies überprüft wird, garantiert es nicht, dass die Validierung nicht umgangen werden kann.

Antwort auf eine Nachricht

  1. Klicke im Nachrichten-Bereich auf eine beliebige Nachricht, um das Dialogfeld mit den Nachrichtendetails zu öffnen.

  2. Bearbeite das Daten-Feld nach Bedarf.

  3. Klicke auf Senden.

Prototyp-Verschmutzung

DOM Invader kann auch nach Prototype Pollution-Schwachstellen suchen. Zuerst musst du es aktivieren:

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

Wenn etwas gefunden wird, erscheint ein Test-Button, um die gefundene Quelle zu testen. Klicke darauf, ein neuer Tab wird erscheinen, erstelle ein Objekt in der Konsole und überprüfe, 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 der Scan for gadgets-Button, der neben jeder identifizierten Prototype Pollution-Quelle in der DOM-Ansicht zu finden ist, angeklickt wird. Der Scan nach geeigneten Gadgets beginnt dann.

  2. In der gleichen Registerkarte sollte inzwischen 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 eine Gadget-Eigenschaft namens html, die an den innerHTML-Sink übergeben wird, im folgenden Beispiel angezeigt.

DOM Clobbering

Im vorherigen Bild ist zu sehen, dass der DOM Clobbering-Scan aktiviert werden kann. Sobald dies geschehen ist, beginnt DOM Invader nach DOM Clobbering-Schwachstellen zu suchen.

Referenzen

Unterstützen Sie HackTricks

Last updated