Reflected XSS with some SVG markup allowed
Laboratorio de Portswigger sobre XSS
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene una vulnerabilidad XSS reflejada simple. El sitio está bloqueando las etiquetas comunes, pero omite algunas etiquetas SVG y eventos. Para resolver el 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
En este laboratorio, se bloquean varias etiquetas como <img> y custom tags. Podemos utilizar esta cheat sheet https://portswigger.net/web-security/cross-site-scripting/cheat-sheet para encontrar tags que podamos ejecutar. Para ello, vamos a efectuar un ataque de fuerza bruta con Burpsuite. Lo primero es buscar un valor mediante el cuadro de búsqueda, capturar la petición con Burpsuite y enviarla al intruder.
Lo que debemos hacer es dirigirnos al cheat sheet y pulsar sobre Copy tags to clipboard y pegarlos en la lista de payloads de Burpsuite
Una vez hecho esto pulsamos sobre Start attack y filtramos por Status code
El tag que más me llama la atención es <svg>, ahora el siguiente paso el bruteforcear los eventos que podemos usar. Para ello lo primero que tenemos que tenemos hacer insertar este payload <svg onload=alert(1)> en el cuadro de búsqueda y capturar la petición con Burpsuite
Los siguiente que debemos hacer es irnos a la cheat sheet, pulsar en Copy event to clipboard, copiar estos payloads en el Burpsuite igual que hemos hecho antes e iniciar el ataque. Una vez hecho esto vemos que solo podemos usar el atributo onbegin
Nos vamos a la cheat sheet nuevamente y filtramos por svg > animatetransform
Nos copiamos el payload <svg><animatetransform onbegin=alert(1) attributeName=transform>, lo pegamos en el cuadro de búsqueda y explotamos el XSS











