Empoisonnement de cache ciblé via un header inconnu

Targeted web cache poisoning using an unknown header

Empoisonner le cache avec une réponse qui exécute alert(document.cookie) dans le navigateur d’un visiteur, mais uniquement pour un sous-ensemble d’utilisateurs correspondant à la victime.

Observation initiale

  • On intercepte la requête/réponse.

Avec l’extension Param Miner, on lance la détection des en-têtes exploitables

  • L’outil révèle un header “secret” : X-Host.

Si on envoie X-Host: test.com, la valeur se retrouve réinjectée dans la réponse (dans un src).

Mise en place de la charge utile

  1. Sur l’Exploit Server, on crée une ressource avec comme chemin/titre :

    • /resources/js/tracking.js

Contenu du fichier :

Empoisonnement du cache (ciblage via X-Host)

  • On renvoie la requête avec :

La page charge alors le tracking.js depuis l’exploit server, ce qui déclenche l’alerte.

Ciblage de la victime avec le User-Agent

  • On remarque que la réponse varie selon User-Agent (via Vary), donc pour toucher la victime il faut connaître son UA.

On poste un commentaire qui force un chargement vers l’exploit server :

Dans les logs de l’exploit server, on récupère le User-Agent de la victime :

Mozilla/5.0 (Victim) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36

Mis à jour