# Web cache deception

## Lab: Exploiting path mapping for web cache deception

### Enunciado

Para resolver el laboratorio, encuentra la clave API del usuario carlos. Puedes iniciar sesión en tu propia cuenta con las siguientes credenciales:

* **Usuario:** `wiener`
* **Contraseña:** `peter`

### Resolución

Nos logueamos. Mandamos al **Repeater** la petición y vemos que después de **/my-account** no comprueba nada y si mandamos un fichero JavaScript nos indica cuánto está en caché.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fss1rJauYK7fWfv8KZl1Z%2Fimage.png?alt=media&#x26;token=293a959a-d477-4b96-a186-9efd402e0f02" alt=""><figcaption></figcaption></figure>

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Ft2rMZrLV1NgXQbzGFTH1%2Fimage.png?alt=media&#x26;token=bd4ab1d3-747e-4c0c-9301-152771cee863" alt=""><figcaption></figcaption></figure>

Si mandamos otra vez ahora nos sale **hit** en **X-Cache**. Esto significa que la URL se ha quedado en la caché.

```
<script>
    document.location="https://0ae200710374a63181a8354b001f00b4.web-security-academy.net/my-account/hola.js"
</script>
```

Lo mandamos a la víctima y antes de los 30 segundos de la caché vemos la API de carlos.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FP3LvY1ck5904SoRdw4hR%2Fimage.png?alt=media&#x26;token=afdab461-ed38-4763-bc13-c46b781772a2" alt=""><figcaption></figcaption></figure>
