
Descripción
This lab is vulnerable to web cache poisoning. A victim user will view any comments that you post. To solve this lab, you need to poison the cache with a response that executes alert(document.cookie)
in the visitor’s browser. However, you also need to make sure that the response is served to the specific subset of users to which the intended victim belongs.
Targeted web cache poisoning using an unknown header writeup
Entramos al laboratorio y enviamos del ‘Logger’ al ‘Repeater’ la petición de la raíz ‘/’ con Ctrl + I o Click derecho -> Send to Repeater. Allí daremos Click derecho en la parte de Request -> Extensions -> Param Miner -> Guess headers. El resultado obtenido aparecerá en la pestaña ‘Target’ y será el siguiente:

Ha encontrado el parámetro secreto ‘host’, lo usaremos en el ‘Repeater’ y veremos cómo se comporta la página otorgándole diferentes valores:

Vemos que usa el valor de ‘X-Host’ para generar dinámicamente la ruta de un archivo de JavaScript.
Nota: Sólo lo usará si le otorgamos un domino completo, con ‘test’ no funcionará, pero con ‘test.com’ sí.
Ahora nos vamos al laboratorio, en ‘Go to exploit server’ y usamos la siguiente configuración:

Pulsamos ‘Store’ copiamos la URL del servidor y la pegamos en el valor del parámetro ‘X-Host’:

Esto funcionará en nuestro ordenador, pero no en el de la víctima. Examinando el encabezado detenidamente veremos que tiene el siguiente fragmento:
Vary: User-Agent
Esto se usa para indicar que las respuestas generadas pueden variar según el ‘User-Agent’ que tenga el navegador. Intentaremos averiguar el ‘User-Agent’ de la víctima de víctima.
En los comentarios de los posts, se nos muestra que se permite HTML, crearemos un elemento que realice una petición a nuestro servidor:

Volveremos al exploit server, pero esta vez iremos al ‘Access log’. Allí tendremos la siguiente información:

Pegaremos el nuevo ‘User-Agent’ en nuestra petición y borraremos el antiguo:

Al enviar la petición completaremos el laboratorio:
