
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
.
We have provided a list of possible delimiter characters to help you solve the lab: Web cache deception lab delimiter list.
Exploiting cache server normalization 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:

Encontrar una regla de caché que se pueda explotar
En este caso, todos los elementos dentro de la carpeta ‘resources’ tienen la siguiente regla de caché:

A diferencia del laboratorio anterior (Exploiting origin server normalization for web cache deception), esta vez no podremos añadir la ruta de ‘my-account’ directamente.
Encontrar los delimitadores de URL aceptados
Realizaremos un ataque con el ‘Intruder’ y la Web cache deception lab delimiter list para ver cómo añadir el segmento de URL:

Nota: Hay que desactivar la opción de ‘URL-encode these characters’.
Al finalizar el ataque tendremos esta información:

Se puede usar para delimitar la URL:
- #: Aunque no usaremos esta debido a que el navegador de la víctima borrará todo lo que haya detrás de este símbolo.
- ?
- %23: Es ‘#’ codificado a URL.
- %2f: Es ‘/’ codificado a URL.
Construir la nueva URL
Después de varias pruebas, crearemos la siguiente URL:
/my-account%23/..%2fresources
- Añadiremos el ‘#’ codificado a URL para que el navegador ignore el resto de la URL pero el servidor no.
- Añadimos ‘/../’ con la última ‘/’ codificada a URL para salir de la ruta.
- Entramos en ‘resources’ que es donde hay una regla de caché que puede ser explotada.
Al enviar la petición dos veces obtendremos una respuesta de caché:

Creación del script
Iremos a ‘Go to exploit server’ y pegaremos el siguiente código en el ‘Body’:
<script>
document.location=»https://0ae40064034cc629815bc8e300e900a0.web-security-academy.net/my-account%23/..%2fresources»
</script>
Al pulsar ‘Delvier exploit to victim’ y reenviar la petición por Burp Suite obtendremos la API Key de ‘carlos’:

Nota: Hay que usar Burp Suite, puesto que en el navegador es posible que la respuesta de nuestro usuario se haya cacheado.
Al enviar la solución completaremos el laboratorio:
