
Descripción
To solve the lab, find the API key for the user carlos
. You can log in to your own account using the following credentials: wiener:peter
.
Exploiting path mapping for web cache deception writeup
Dividiremos este laboratorio en varias partes:
Encontrar la API Key
La API Key la encontraremos al iniciar sesión en ‘My account’ con el usuario ‘wiener’ y la contraseña ‘peter’. La petición tendrá el siguiente aspecto:

Nos la llevaremos al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater.
Encontrar dónde hacer el engaño de caché
En el ‘Repeater’, añadiremos a la URL ‘test.css’ y veremos lo siguiente:

Se produce un miss en el caché. Ahora, durante los siguientes 30 segundos (valor del atributo ‘Cache-Control’) las peticiones que se hagan a esta URL no irán archivo correspondiente del servidor, sino a una memoria especial llamada ‘caché’ donde se habrá guardado esta respuesta a la petición. Esto se debe a que los servidores normalmente cachean sus archivos .js y .css, para no tener que devolverlos en cada petición de la memoria normal, sino de la caché, que es más rápida.
Ahora que hemos encontrado una forma de cachear la respuesta, haremos que el usuario ‘carlos’ guarde en ella su API Key, para que nosotros podamos acceder.
Exploit
<script>
document.location="https://0a4c0031045440f880a0f81c002b0046.web-security-academy.net/my-account/test.css";
</script>
Al ejecutar este script, ‘carlos’ irá a la página ‘test.css’, donde el servidor guardará su página por 30 segundos y nosotros podremos acceder.
Iremos a ‘Go to exploit server’, pegaremos el script y lo enviaremos con ‘Deliver exploit to victim’, ahora accederemos a la URL ‘https://0a4c0031045440f880a0f81c002b0046.web-security-academy.net/my-account/test.css’.

Nota: Hay que acceder a la URL a través del ‘Repeater’ de Burp Suite, si no el navegador puede haber cacheado la página con nuestra cuenta con otras reglas y no mostrar al usuario ‘carlos’.
Al enviar la API Key en ‘Submit solution’ completaremos el laboratorio:
