
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 origin 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é:

Podemos servir al servidor una ruta que, pese a que no esté en resources, le haga creer que sí y nos aplique las normas de caché de esta:
En este caso la ruta será ‘https://0af2005a04bda83080776c1200ab00b3.web-security-academy.net/resources/..%2fmy-account’.
Lo que se ha hecho es añadir un ‘../’ a la ruta, para entrar y salir de resources, pero la ‘/’ se ha codificado a URL (%2f) para que el navegador no la elimine automáticamente junto con la carpeta anterior.
En este ejemplo, el servidor cree que estamos pidiendo un recurso de ‘resources’ y carga sus reglas de caché, pero al buscar la información, decodifica el ‘%2f’ a ‘/’, sirviéndonos ‘my-account’:

El script para el ‘Body’ del ‘Exploit server’ será el siguiente:
<script>
document.location="https://0af2005a04bda83080776c1200ab00b3.web-security-academy.net/resources/..%2fmy-account"
</script>
Al enviarlo y acceder a ‘my account’ veremos la siguiente información:

Obteniendo la API Key ‘cUpLHE1hOr4YMe0yAgu7p53eogVNG2JC’ que, al enviar en ‘Submit solution’ completará el laboratorio:
