
Descripción
This lab contains a web cache poisoning vulnerability that is only exploitable when you use multiple headers to craft a malicious request. A user visits the home page roughly once a minute. To solve this lab, poison the cache with a response that executes alert(document.cookie)
in the visitor’s browser.
Web cache poisoning with multiple headers writeup
Este laboratorio es parecido a Web cache poisoning with an unkeyed header.
Accederemos a la página principal, capturaremos la petición y la enviaremos al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater.

Usaremos la extensión de Burp Suite ‘Param Miner’ para averiguar los parámetros que puede admitir el laboratorio. Daremos Click derecho en la parte de Request -> Extensions -> Param Miner -> Guess headers.
Si vamos a ‘Target’, encontraremos el resultado del escaneo:

Nos dice que podemos realizar un cache poisoning con la etiqueta ‘X-Forwarded-Scheme’. Esta etiqueta le dice al servidor qué protocolo (HTTP o HTTPS) ha usado el navegador.
Si añadimos ‘X-Forwarded-Scheme: http’, (o cualquier valor que no sea https), el servidor nos devolverá un código 302, redirigiendonos al mismo dominio, pero con HTTPS:

Si ahora, con esta nueva petición, repetimos el escaneo con Click derecho en la parte de Request -> Extensions -> Param Miner -> Guess headers, obtendremos más información:

Nos dice ahora que podemos usar ‘X-Forwarded-Host’ para realizar el cache poisoning. Añadiéndola con cualquier valor crearemos una redirección a cualquier domino:

Sin embargo, no podemos redirigir toda la página, lo haremos con un recurso .js (/resources/js/tracking.js) para ejecutar el alert(1).
Iremos ahora al navegador, en ‘Go to exploit server’ y prepararemos el exploit:

Pulsamos ‘Store’ y enviamos ahora la siguiente petición:

Completando así el laboratorio:
