Entrada

XSS Lab 10

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

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