8.3 KiB
DOM Invader
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF revisa los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repos de github HackTricks y HackTricks Cloud.
DOM Invader
DOM Invader es una herramienta de navegador instalada en el navegador incorporado de Burp. Asiste en la detección de vulnerabilidades DOM XSS utilizando diversas fuentes y sumideros, incluyendo mensajes web y contaminación de prototipos. La herramienta está preinstalada como una extensión.
DOM Invader integra una pestaña dentro del panel DevTools del navegador que permite lo siguiente:
- Identificación de sumideros controlables en una página web para pruebas de DOM XSS, proporcionando contexto y detalles de saneamiento.
- Registro, edición y reenvío de mensajes web enviados a través del método
postMessage()
para pruebas de DOM XSS. DOM Invader también puede detectar automáticamente vulnerabilidades utilizando mensajes web especialmente diseñados. - Detección de fuentes de contaminación de prototipos en el lado del cliente y escaneo de gadgets controlables enviados a sumideros riesgosos.
- Identificación de vulnerabilidades de DOM clobbering.
Actívalo
En el navegador incorporado de Burp ve a la extensión de Burp y actívala:
Ahora actualiza la página y en los Dev Tools encontrarás la pestaña DOM Invader:
Inyecta un Canary
En la imagen anterior puedes ver un grupo aleatorio de caracteres, eso es el Canary. Ahora deberías empezar a inyectarlo en diferentes partes de la web (parámetros, formularios, URL...) y cada vez hacer clic en buscar. DOM Invader comprobará si el canary terminó en algún sumidero interesante que podría ser explotado.
Además, las opciones Inject URL params e Inject forms abrirán automáticamente una nueva pestaña inyectando el canary en cada URL parámetro y formulario que encuentre.
Inyecta un Canary vacío
Si solo quieres encontrar posibles sumideros que la página podría tener, incluso si no son explotables, puedes buscar un canary vacío.
Mensajes Post
DOM Invader permite probar DOM XSS utilizando mensajes web con características como:
- Registro de mensajes web enviados a través de
postMessage()
, similar al registro de historial de solicitudes/respuestas HTTP de Burp Proxy. - Modificación y reemisión de mensajes web para probar manualmente DOM XSS, similar a la función de Burp Repeater.
- Alteración automática y envío de mensajes web para sondear DOM XSS.
Detalles del mensaje
Puedes hacer clic en cada mensaje para ver más información detallada sobre él, incluyendo si las propiedades origin
, data
o source
del mensaje son accedidas por el JavaScript del lado del cliente.
origin
: Si la información de origen del mensaje no se verifica, podrías ser capaz de enviar mensajes de origen cruzado al manejador de eventos desde un dominio externo arbitrario. Pero si se verifica, aún podría ser inseguro.data
: Aquí es donde se envía la carga útil. Si estos datos no se utilizan, el sumidero es inútil.source
: Evalúa si la propiedad source, que generalmente hace referencia a un iframe, es validada en lugar del origen. Incluso si esto se verifica, no asegura que la validación no pueda ser eludida.
Responder un mensaje
- Desde la vista Mensajes, haz clic en cualquier mensaje para abrir el diálogo de detalles del mensaje.
- Edita el campo Data según sea necesario.
- Haz clic en Enviar.
Contaminación de Prototipos
DOM Invader también puede buscar vulnerabilidades de Contaminación de Prototipos. Primero, necesitas activarlo:
Luego, buscará fuentes que te permitan agregar propiedades arbitrarias al Object.prototype
.
Si se encuentra algo, aparecerá un botón Test para probar la fuente encontrada. Haz clic en él, se abrirá una nueva pestaña, crea un objeto en la consola y verifica si existe la propiedad testproperty
:
let b = {}
b.testproperty
Una vez que hayas encontrado una fuente, puedes buscar un gadget:
- Desde la vista DOM, haz clic en el botón Buscar gadgets junto a cualquier fuente de contaminación de prototipos que DOM Invader haya encontrado. DOM Invader abre una nueva pestaña y comienza a buscar gadgets adecuados.
- En la misma pestaña, abre la pestaña DOM Invader en el panel de DevTools. Una vez que la búsqueda ha terminado, la vista DOM muestra cualquier punto de entrada que DOM Invader pudo acceder a través de los gadgets identificados. En el ejemplo a continuación, una propiedad de gadget llamada
html
se pasó al punto de entradainnerHTML
.
DOM clobbering
En la imagen anterior es posible ver que se puede activar la búsqueda de DOM clobbering. Una vez hecho, DOM Invader comenzará a buscar vulnerabilidades de DOM clobbering.
Referencias
- 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
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF revisa los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de Telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub HackTricks y HackTricks Cloud.