Entrada

XSS Lab 3

XSS Lab 3

Skills

  • DOM XSS in document.write sink using source location.search

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio contiene una vulnerabilidad de cross-site scripting basado en DOM en la funcionalidad de seguimiento de consultas de búsqueda. Utiliza la función document.write de JavaScript, que escribe datos en la página. La función document.write se llama con datos provenientes de location.search, los cuales podemos controlar mediante la URL del sitio web. Para resolver el laboratorio, debemos realizar un ataque de cross-site scripting que invoque la función alert


Resolución

Al acceder a la web nos sale esto

Intentamos un Html Injection pero no da resultado

Nos abrimos el inspector de Chrome y buscamos el payload introducido

En la parte superior vemos el h1 que hemos buscado, sin embargo, en la parte inferior vemos esta función de jasvascript que está cargando imágenes dependiendo del parámetro introducido

Vemos que no se interpreta el <h1>test</h1>, debido a que está actuando como parámetro, para que sea interpretado podemos usar este payload "><h1>test</h1> para escapar del src. Si hacemos esto veremos que si se interpreta

Para confirmarlo podemos volver a hacer lo mismo pero cambiando la etiqueta para cambiar el tamaño de letra "><p>test</p>

Si vemos el código fuente nuevamente, vemos que hemos escapado del src del img

Ahora vamos a intentar llevar a cabo un DOM XSS, es un DOM XSS debido a que se está modificando el código de la web en nuestro navegador. Si usamos el payload "><script>alert(0)</script> nos salta un alert, lo que quiere decir que la web es vulnerable

Una forma más sencilla de identificar la vulnerabilidad DOM XSS es usando el Dom Invader, para activarlo debemos pulsar sobre la extensión de Burpsuite que viene por defecto instalada en el navegador y activarla

Debemos usar el inspect de Chrome, para activar podemos pulsar Ctrl + Shift + i, F12 o pulsar click derecho > inspect. Una vez abierto nos dirigimos al DOM Invader

Debemos copiar la palabra aipyq6n2, que en este caso es la que vamos a usar para saber si algo es vulnerable, esta palabra la vamos a pegar aquí y vamos a pulsar en Search

Si el DOM Invader identifica alguna modificación del DOM que puede ser vulnerable nos la resaltará

Si pulsamos sobre Stack Trace y luego nos dirigimos a console veremos dos enlace y si hacemos click sobre ellos nos llevará a la parte del código en la que se produce la vulnerabilidad

Si pulsamos sobre Exploit, la extensión nos generará un payload para explotar la vulnerabilidad

Esta entrada está licenciada bajo CC BY 4.0 por el autor.