Empoisonnement du cache interne
Internal cache poisoning
Ce laboratoire est vulnérable à l’empoisonnement du cache web et utilise plusieurs couches de mise en cache. Un utilisateur visite régulièrement la page d’accueil du site avec Chrome.
L’objectif est d’empoisonner le cache interne afin que la page d’accueil exécute alert(document.cookie) dans le navigateur de la victime.
Analyse initiale
Nous interceptons la requête vers la racine (/) et l’analysons avec Param Miner

Observation du comportement
Lorsque nous ajoutons l’en-tête suivant à la requête :

Nous constatons que la réponse du serveur reflète cette valeur.

Cependant, cette modification n’est visible que si l’en-tête est conservée à travers les requêtes internes.
En envoyant de nombreuses requêtes avec cette en-tête, le serveur finit par mettre en cache la réponse interne.
Impact sur le contenu mis en cache
Un script initialement chargé sous la forme :
Est transformé, après empoisonnement du cache, en :

La source du script dépend désormais de la valeur injectée via X-Forwarded-Host.
Le cache interne est empoisonné avec une réponse malveillante. Lorsque la victime visite la page d’accueil, le navigateur charge le script depuis notre serveur, ce qui entraîne l’exécution de :
Mis à jour