Web cache poisoning with an unkeyed cookie writeup

Descripción

This lab is vulnerable to web cache poisoning because cookies aren’t included in the cache key. An unsuspecting user regularly visits the site’s home page. To solve this lab, poison the cache with a response that executes alert(1) in the visitor’s browser.

Web cache poisoning with an unkeyed cookie writeup

Este laboratorio es muy similar al anterior (Web cache poisoning with an unkeyed header). Capturaremos la página principal con el ‘Logger’ de Burp Suite. Enviaremos esta petición al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater.

Vemos que si añadimos a la URL ‘?test’ podemos dejar a la raíz sin cachear y trabajar con la página. Esto se llama ‘cache-buster query parameter’, y nos permite acceder a páginas sin caché (modificando la parte detrás de ‘?’) al igual que no interferir con los usuarios que están navegando:

Nota: También se puede hacer dándole valor al parámetro, por ejemplo ‘/?test=valoTest’.

En la petición hay una cookie llamada ‘fehost’ (Front End Host), que interfiere directamente con la página al ser insertada en un diccionario de JavaScript llamado ‘data’.

Esta cookie la podemos modificar, cambiaremos su valor por:

"-alert(1)-"

Esto realiza lo siguiente:

  1. «: Cierra el valor de frontend y lo deja como cadena vacía.
  2. -alert(1): Intenta restar a la cadena vacía la función alert(1). JavaScript cuando realiza una resta con una función la ejecuta antes, ejecutando así el alert().
  3. -«: Le restamos la siguiente cadena vacía, que debe existir para que no se queden comillas sin cerrar (si las hay se produce un error y no se ejecuta JavaScript).

Al enviar la petición:

Y volver al navegador habremos completado el laboratorio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *