8.9 KiB
DOM Eindringling
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 beworben sehen 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 Telegramm-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 einreichen.
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:
- Identifizierung von steuerbaren Senken auf einer Webseite für DOM-XSS-Tests, Bereitstellung von Kontext- und Säuberungsdetails.
- 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. - Erkennung von Quellen für clientseitige Prototypenverunreinigung und Scannen von steuerbaren Geräten, die an gefährliche Senken gesendet werden.
- 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:
- Protokollierung von Webnachrichten, die über
postMessage()
gesendet wurden, ähnlich der Protokollierung des HTTP-Anforderungs-/Antwortverlaufs von Burp Proxy. - Änderung und Neuausstellung von Webnachrichten, um manuell auf DOM-XSS zu testen, ähnlich der Funktion von Burp Repeater.
- 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
- Klicken Sie in der Nachrichten-Ansicht auf eine Nachricht, um den Dialog mit den Nachrichtendetails zu öffnen.
- Bearbeiten Sie das Feld Daten wie erforderlich.
- 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:
- 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.
- 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 deninnerHTML
-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
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
Erlernen 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 im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- 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 einreichen.