Empoisonnement du cache avec plusieurs en-têtes
Web cache poisoning with multiple headers
Ce laboratoire présente une vulnérabilité d’empoisonnement du cache web exploitable uniquement en combinant plusieurs en-têtes HTTP.
Un utilisateur visite la page d’accueil environ une fois par minute.
L’objectif est d’empoisonner le cache afin que la réponse exécutée dans le navigateur de la victime déclenche alert(document.cookie).
Analyse initiale
Interception de la requête vers la racine du site (
/).La réponse semble mise en cache et réutilisée pour les visiteurs suivants.

Découverte des en-têtes exploitables
Utilisation de l’extension Param Miner pour deviner des en-têtes non indexés.

L’outil détecte l’en-tête
X-Forwarded-Scheme.

Test de X-Forwarded-Scheme
Cet en-tête indique si la requête est traitée comme provenant de HTTP ou HTTPS.
En envoyant :
Le site tente de se comporter comme s’il était servi en HTTP.

Cela provoque un dysfonctionnement et les ressources ne se chargent plus correctement à cause de redirections incorrectes.

Ajout d’un second en-tête : X-Forwarded-Host
Le site tente alors de charger ses ressources depuis ce domaine.

On observe notamment le chargement du fichier JavaScript :
Ce script est exécuté automatiquement au chargement de la page.

Exploitation avec l’Exploit Server
L’objectif est de forcer le chargement du fichier JavaScript depuis l’Exploit Server.
Sur l’Exploit Server :
Création d’un fichier accessible à l’URL :
Contenu du fichier :

Résultat
La page d’accueil charge désormais le script JavaScript depuis l’Exploit Server.

La réponse empoisonnée est mise en cache.
Lorsqu’un utilisateur visite la page, le script s’exécute automatiquement.
Une alerte affichant
document.cookieapparaît dans le navigateur de la victime.

Mis à jour