Descripción

This lab contains an XSS vulnerability that is not directly exploitable due to browser URL-encoding.

To solve the lab, take advantage of the cache’s normalization process to exploit this vulnerability. Find the XSS vulnerability and inject a payload that will execute alert(1) in the victim’s browser. Then, deliver the malicious URL to the victim.

URL normalization writeup

Dividiremos el laboratorio en varios pasos:

Determinar que el laboratorio usa caché

Esto lo podremos averiguar viendo los siguientes tres atributos en una respuesta:

Si se encuentran podemos suponer que un ataque de envenenamiento de caché es posible.

Localizar un cache buster

Un cache buster nos permite refrescar la caché más rápido y evitar interferir con los usuarios que navegan. En este caso se puede encontrar añadiendo una cadena de caracteres aleatoria detrás de un ‘?’ en la URL, por ejemplo: ‘/?test’. Cuando queramos refrescar la caché cambiaremos la cadena de caracteres.

Encontrar un parámetro que no esté en la ‘key’

En este caso, tras pasar el escáner de ‘Param Miner’ con la opción ‘Guess everything!’ no encontraremos nada.

Explotar el mensaje de error de normalización de URL

Si introducimos una cadena aleatoria en la URL nos devolverá el mensaje de error con la propia cadena en el contenido:

Además, vemos que esta respuesta se puede cachear. Enviaremos la siguiente URL desde el ‘Repeater’:

/test</p><script>alert(1)</script>

Si accedemos desde el navegador, la URL será URL-encodeada, y no dará resultado, pero si la enviamos desde el ‘Repeater’, pasará el filtro y se cacheará el ‘alert()’ correctamente.

Enviaremos la petición y, rápidamente, volveremos al navegador y enviaremos a la víctima el link:

https://0a6700e303086c2b81859dea00240013.web-security-academy.net/test</p><script>alert(1)</script>

Completando así el laboratorio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *