Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86382270

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

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