DOM Invader
DOM Invader
DOM Invader est un outil de navigateur installé dans le navigateur intégré de Burp. Il aide à détecter les vulnérabilités XSS DOM en utilisant diverses sources et sinks, y compris les messages web et la pollution de prototype. L'outil est préinstallé en tant qu'extension.
DOM Invader intègre un onglet dans le panneau DevTools du navigateur permettant ce qui suit :
Identification des sinks contrôlables sur une page web pour les tests XSS DOM, fournissant des détails de contexte et de désinfection.
Journalisation, édition et renvoi des messages web envoyés via la méthode
postMessage()
pour les tests XSS DOM. DOM Invader peut également détecter automatiquement les vulnérabilités en utilisant des messages web spécialement conçus.Détection des sources de pollution de prototype côté client et balayage des gadgets contrôlables envoyés vers des sinks risqués.
Identification des vulnérabilités de clobbering DOM.
Activer
Dans le navigateur intégré de Burp, accédez à l'extension Burp et activez-la :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-0d4cd8ba00b54558171fbf4ba9a43b34185bdd62%252Fimage%2520%284%29%2520%281%29%2520%281%29%2520%282%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=baf1b8f5&sv=1)
Maintenant, actualisez la page et dans les Dev Tools, vous trouverez l'onglet DOM Invader :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-38b71f3d46ec54b0987aad7a06f670f82da8f9a0%252Fimage%2520%283%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=3c22c75&sv=1)
Injecter un canari
Sur l'image précédente, vous pouvez voir un groupe aléatoire de caractères, qui est le Canari. Vous devriez maintenant commencer à l'injecter dans différentes parties du web (paramètres, formulaires, URL...) et cliquer à chaque fois sur rechercher. DOM Invader vérifiera si le canari se termine dans un sink intéressant qui pourrait être exploité.
De plus, les options Injecter les paramètres d'URL et Injecter les formulaires ouvriront automatiquement un nouvel onglet en injectant le canari dans chaque paramètre d'URL et formulaire qu'il trouve.
Injecter un canari vide
Si vous voulez simplement trouver les sinks potentiels que la page pourrait avoir, même s'ils ne sont pas exploitables, vous pouvez rechercher un canari vide.
Messages post
DOM Invader permet de tester les XSS DOM en utilisant des messages web avec des fonctionnalités telles que :
Journalisation des messages web envoyés via
postMessage()
, similaire à l'historique de journalisation des requêtes/réponses HTTP de Burp Proxy.Modification et réémission des messages web pour tester manuellement les XSS DOM, similaire à la fonction de Burp Repeater.
Modification automatique et envoi de messages web pour sonder les XSS DOM.
Détails du message
Des informations détaillées peuvent être consultées sur chaque message en cliquant dessus, ce qui inclut si le JavaScript côté client accède aux propriétés origin
, data
ou source
du message.
origin
: Si les informations d'origine du message ne sont pas vérifiées, vous pourriez être en mesure d'envoyer des messages entre origines à l'gestionnaire d'événements depuis un domaine externe arbitraire. Mais s'il est vérifié, cela pourrait toujours être insécurisé.data
: C'est là que la charge utile est envoyée. Si ces données ne sont pas utilisées, le sink est inutile.source
: Évalue si la propriété source, faisant généralement référence à un iframe, est validée au lieu de l'origine. Même si cela est vérifié, cela ne garantit pas que la validation ne peut pas être contournée.
Répondre à un message
Depuis la vue Messages, cliquez sur n'importe quel message pour ouvrir la boîte de dialogue des détails du message.
Modifiez le champ Data selon vos besoins.
Cliquez sur Envoyer.
Pollution de prototype
DOM Invader peut également rechercher des vulnérabilités de pollution de prototype. Tout d'abord, vous devez l'activer :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-4fbfba8c76a0ee69a549763c58d9129634eacd6e%252Fimage%2520%285%29%2520%281%29%2520%281%29%2520%283%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=a9561100&sv=1)
Ensuite, il recherchera des sources qui vous permettent d'ajouter des propriétés arbitraires à l'Object.prototype
.
Si quelque chose est trouvé, un bouton Tester apparaîtra pour tester la source trouvée. Cliquez dessus, un nouvel onglet apparaîtra, créez un objet dans la console et vérifiez si la testproperty
existe :
Une fois que vous avez trouvé une source, vous pouvez analyser un gadget :
Un nouvel onglet est ouvert par DOM Invader lorsque le bouton Analyser les gadgets, qui se trouve à côté de toute source de pollution de prototype identifiée dans la vue DOM, est cliqué. La recherche de gadgets appropriés commence alors.
Pendant ce temps, dans le même onglet, l'onglet DOM Invader doit être ouvert dans le panneau DevTools. Après la fin de l'analyse, toutes les failles accessibles via les gadgets identifiés sont affichées dans la vue DOM. Par exemple, une propriété de gadget nommée
html
passée au puitsinnerHTML
est affichée dans l'exemple ci-dessous.
Substitution de DOM
Dans l'image précédente, il est possible de voir que l'analyse de la substitution de DOM peut être activée. Une fois cela fait, DOM Invader commencera à rechercher des vulnérabilités de substitution de DOM.
Références
Last updated