hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md

8.6 KiB

DOM Invader

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres moyens de soutenir HackTricks :

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 DOM XSS en utilisant diverses sources et puits, 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 :

  1. Identification des puits contrôlables sur une page web pour les tests DOM XSS, fournissant le contexte et les détails de la sanitisation.
  2. Enregistrement, édition et renvoi des messages web envoyés via la méthode postMessage() pour les tests DOM XSS. DOM Invader peut également détecter automatiquement les vulnérabilités en utilisant des messages web spécialement conçus.
  3. Détection de sources de pollution de prototype côté client et analyse des gadgets contrôlables envoyés aux puits risqués.
  4. Identification des vulnérabilités de clobbering DOM.

Activer

Dans le navigateur intégré de Burp, allez à l'extension Burp et activez-la :

Maintenant, rafraîchissez la page et dans les Dev Tools, vous trouverez l'onglet DOM Invader :

Injecter un Canary

Dans l'image précédente, vous pouvez voir un groupe aléatoire de caractères, c'est le Canary. Vous devriez maintenant commencer à l'injecter dans différentes parties du web (paramètres, formulaires, URL...) et à chaque fois cliquer pour le rechercher. DOM Invader vérifiera si le canary a terminé dans un puits intéressant qui pourrait être exploité.

De plus, les options Injecter les paramètres URL et Injecter les formulaires ouvriront automatiquement un nouvel onglet injectant le canary dans chaque paramètre URL et formulaire trouvé.

Injecter un Canary vide

Si vous voulez juste trouver des puits potentiels que la page pourrait avoir, même s'ils ne sont pas exploitables, vous pouvez rechercher un canary vide.

Messages Post

DOM Invader permet de tester les DOM XSS en utilisant des messages web avec des fonctionnalités telles que :

  1. Enregistrement des messages web envoyés via postMessage(), semblable à l'historique de logging des requêtes/réponses HTTP de Burp Proxy.
  2. Modification et réémission des messages web pour tester manuellement les DOM XSS, similaire à la fonction de Burp Repeater.
  3. Altération automatique et envoi de messages web pour sonder les DOM XSS.

Détails du message

Vous pouvez cliquer sur chaque message pour voir plus d'informations détaillées à son sujet, y compris si les propriétés origin, data ou source du message sont accédées par le JavaScript côté client.

  • origin : Si l'information d'origine du message n'est pas vérifiée, vous pourriez être capable d'envoyer des messages cross-origin au gestionnaire d'événements depuis un domaine externe arbitraire. Mais si elle est vérifiée, cela pourrait toujours être non sécurisé.
  • data: C'est là que le payload est envoyé. Si ces données ne sont pas utilisées, le puits 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

  1. Depuis la vue Messages, cliquez sur n'importe quel message pour ouvrir la boîte de dialogue des détails du message.
  2. Modifiez le champ Data comme nécessaire.
  3. 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 :

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 :

let b = {}
b.testproperty

Une fois que vous avez trouvé une source, vous pouvez scanner à la recherche d'un gadget :

  1. Depuis la vue DOM, cliquez sur le bouton Scanner à la recherche de gadgets à côté de toute source de pollution de prototype que DOM Invader a trouvée. DOM Invader ouvre un nouvel onglet et commence le scan à la recherche de gadgets appropriés.
  2. Dans le même onglet, ouvrez l'onglet DOM Invader dans le panneau DevTools. Une fois le scan terminé, la vue DOM affiche tous les points d'injection que DOM Invader a pu accéder via les gadgets identifiés. Dans l'exemple ci-dessous, une propriété de gadget appelée html a été passée au point d'injection innerHTML.

DOM clobbering

Dans l'image précédente, il est possible de voir que le scan de DOM clobbering peut être activé. Une fois fait, DOM Invader commencera à rechercher des vulnérabilités de DOM clobbering.

Références

Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert) !

Autres moyens de soutenir HackTricks :