XSS Lab 10
Skills
- DOM XSS in document.write sink using source location.search inside a select element
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
contiene una vulnerabilidad de XSS basado en DOM
en la funcionalidad de verificación de stock
. Utiliza la función document.write
de JavaScript
, que escribe datos en la página. La función document.write
se llama con datos de location.search
, los cuales podemos controlar mediante la URL
del sitio web
. Los datos están dentro de un elemento select
. Para resolver este laboratorio
, debemos realizar un ataque de cross-site scripting
que escape
del elemento select
y llame a la función alert
Resolución
Al acceder
a la web
nos sale esto
Si pulsamos sobre View details
podemos ver la descripción
del post
Si vemos el código fuente
encontramos esta función
Si pulsamos sobre Check stock
y capturamos
la petición
con Burpsuite
vemos el parámetro storeId
Si accedemos a https://0a9500b4046690c38237c075004a0082.web-security-academy.net/product?productId=1&storeId="> </select><img src=test onerror=alert(0)>
y añadimos
el parámetro storeId
con este payload "> </select><img src=test onerror=alert(0)>
obtenemos un XSS
. Esto se debe a que hemos escapado
de document.write
, el texto después de escapar, debe lucir como document.write('<select name=""> </select><img src=test onerror=alert(0)> ">');
. Es importante que document.write
tuviera las comillas simples '
, de no ser así, no
se podría haber ejecutado
de esta forma