hacktricks/pentesting-web/abusing-hop-by-hop-headers.md

42 lines
4.9 KiB
Markdown

# En-têtes hop-by-hop
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
* Travaillez-vous dans une **entreprise de cybersécurité**? Vous voulez voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
**Il s'agit d'un résumé de l'article [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)**
Les en-têtes hop-by-hop sont spécifiques à une seule connexion de niveau transport, utilisées principalement dans HTTP/1.1 pour gérer les données entre deux nœuds (comme client-proxy ou proxy-proxy), et ne sont pas destinées à être transmises. Les en-têtes hop-by-hop standard incluent `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` et `Proxy-Authenticate`, tels que définis dans [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1). Des en-têtes supplémentaires peuvent être désignés comme hop-by-hop via l'en-tête `Connection`.
### Abus des en-têtes hop-by-hop
Une gestion incorrecte des en-têtes hop-by-hop par les proxies peut entraîner des problèmes de sécurité. Alors que les proxies sont censés supprimer ces en-têtes, tous ne le font pas, créant des vulnérabilités potentielles.
### Test de la gestion des en-têtes hop-by-hop
La gestion des en-têtes hop-by-hop peut être testée en observant les changements dans les réponses du serveur lorsque des en-têtes spécifiques sont marqués comme hop-by-hop. Des outils et des scripts peuvent automatiser ce processus, identifiant comment les proxies gèrent ces en-têtes et découvrant éventuellement des mauvaises configurations ou des comportements de proxy.
L'abus des en-têtes hop-by-hop peut entraîner diverses implications en matière de sécurité. Voici quelques exemples démontrant comment ces en-têtes peuvent être manipulés pour des attaques potentielles:
### Contournement des contrôles de sécurité avec `X-Forwarded-For`
Un attaquant peut manipuler l'en-tête `X-Forwarded-For` pour contourner les contrôles d'accès basés sur l'IP. Cet en-tête est souvent utilisé par les proxies pour suivre l'adresse IP d'origine d'un client. Cependant, si un proxy traite cet en-tête comme hop-by-hop et le transmet sans validation appropriée, un attaquant peut usurper son adresse IP.
**Scénario d'attaque:**
1. L'attaquant envoie une requête HTTP à une application web derrière un proxy, incluant une fausse adresse IP dans l'en-tête `X-Forwarded-For`.
2. L'attaquant inclut également l'en-tête `Connection: close, X-Forwarded-For`, incitant le proxy à traiter `X-Forwarded-For` comme hop-by-hop.
3. Le proxy mal configuré transmet la requête à l'application web sans l'en-tête `X-Forwarded-For` falsifié.
4. L'application web, ne voyant pas l'en-tête `X-Forwarded-For` d'origine, pourrait considérer la requête comme provenant directement d'un proxy de confiance, permettant potentiellement un accès non autorisé.
### Empoisonnement de cache via l'injection d'en-têtes hop-by-hop
Si un serveur de cache met en cache incorrectement du contenu basé sur des en-têtes hop-by-hop, un attaquant pourrait injecter des en-têtes malveillants pour empoisonner le cache. Cela servirait un contenu incorrect ou malveillant aux utilisateurs demandant la même ressource.
**Scénario d'attaque:**
1. Un attaquant envoie une requête à une application web avec un en-tête hop-by-hop qui ne doit pas être mis en cache (par exemple, `Connection: close, Cookie`).
2. Le serveur de cache mal configuré ne supprime pas l'en-tête hop-by-hop et met en cache la réponse spécifique à la session de l'attaquant.
3. Les futurs utilisateurs demandant la même ressource reçoivent la réponse mise en cache, adaptée à l'attaquant, ce qui pourrait entraîner un détournement de session ou une exposition d'informations sensibles.