Blog/DOM XSS in innerHTML sink using source location.search
DOM XSS in innerHTML sink using source location.search
Portswigger › Portswigger Labs › XSS

Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio contiene una vulnerabilidad de XSS basado en DOM en la funcionalidad de búsqueda de blogs. Utiliza una asignación a innerHTML, que cambia el contenido HTML de un elemento div utilizando datos de location.search. Para resolver este laboratorio, debemos realizar un ataque de cross-site scripting que llame a la función alert
Guía de XSS
Antes de completar este laboratorio es recomendable leerse esta guía de XSS https://justice-reaper.github.io/posts/XSS-Guide/
Resolución
Al acceder a la web nos sale esto

Intentamos un Html Injection y da resultado <h1>test</h1>

Si nos abrimos el inspector de Chrome y buscamos el payload introducido, vemos que se está empleando innerHTML

innerHTML no soporta etiquetas ni <script></script> ni <svg>, sin embargo, si que acepta imágenes. Por lo tanto podemos elaborar un payload <img src=1 onerror=alert(1)>, el cual si no encuentra el src de la imagen ejecute un error

Otra forma de descubrir la vulnerabilidad sería usando la extensión de navegador DOM Invader de Burpsuite

Copiamos el payload yktch9zq y lo copiamos donde deseemos testear un XSS

Una vez ejecutado el payload si nos vamos al DOM Invader, vemos que nos identifica una función peligrosa, a esto lo llamamos sink

Si pulsamos sobre Exploit nos generará un payload para explotar la vulnerabilidad

Si queremos ver el payload enviado nos dirigimos a Burpsuite > Proxy > HTTP history
