DOM XSS in document.write sink using source location.search – PortSwigger Write Up

En este post vamos a estar resolviendo el laboratorio: “DOM XSS in document.write sink using source location.search”:


Cuando abrimos el lab, lo primero que nos encontramos es la siguiente web:


Hay una barra de búsqueda, por lo que vamos a probar a simplemente buscar algo:



Cuando hacemos la búsqueda, si damos click derecho y vemos el código fuente del elemento de la palabra por la que hemos buscado, podremos ver que se sitúa en el atributo src de una imagen.

Observando el como se implementa nuestro input en el código fuente, podemos enviar un payload especializado que se escape del tag .

Por ejemplo vamos a usar:

❯ "><script>alert(”XSS”)</script>//


Cuando hemos escrito nuestro payload, simplemente volvemos a hacer una búsqueda:


Y como vemos, se nos ejecuta el código que hemos introducido. El código fuente se vería ahora de la siguiente forma:


Como vemos, nuestro input ya no se encuentra dentro del <img>, ya que hemos conseguido cerrar el elemento para escribir código JavaScript.

Con esto hecho, conseguimos resolver el laboratorio:


¡Un saludo y espero que os sirva de apoyo!