Jump to content

DOM XSS in document.write sink using source location.search inside a select element – PortSwigger Write Up

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

image 101

En este caso, para resolver el reto tenemos que escaparnos del elemento “select” y llamar a la función alert.

Lo primero de todo es acceder al laboratorio:

image 102

Una vez hemos accedido, podemos ver varios productos. Vamos a entrar en uno cualquiera:

image 103

Cuando entramos, podemos observar una función para comprobar el stock en las distintas ciudades:

image 104
image 105
image 106

Si observamos el código fuente de la web, podemos encontrar el siguiente código:

image 107

Analizando un poco el script, básicamente se entiende que además de las tres ciudades por defecto para comprobar el stock, se le puede agregar una más a través de la variable storeId de la URL. Por lo que podemos probar a añadir esa variable y un valor cualquiera:

image 108

Una vez accedemos a la web de nuevo pero con la variable storeId, si nos fijamos en las ciudades:

image 109

Podemos ver como se ha agregado una más, en concreto una con el nombre del valor que le hemos pasado a la variable.

Si nos vamos de nuevo al código fuente, podemos observar como este parámetro se implementa:

image 110

Por lo que, observando esto, podemos intentar poner un valor que ocasione que nos escapemos del propio elemento options, y ejecute un alert:

image 111

Al acceder a la web con este valor en la variable:

image 112

Se nos ejecuta el alert. En el código fuente, podemos observar lo siguiente:

image 113

Y de esta forma, conseguimos resolver el laboratorio:

image 114

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...