hop-by-hop headers
Il s'agit d'un résumé de l'article 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. 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
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:
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
.L'attaquant inclut également l'en-tête
Connection: close, X-Forwarded-For
, incitant le proxy à traiterX-Forwarded-For
comme hop-by-hop.Le proxy mal configuré transmet la requête à l'application web sans l'en-tête
X-Forwarded-For
falsifié.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:
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
).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.
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.
Last updated