9.1 KiB
En-têtes hop-by-hop
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
RootedCON est l'événement de cybersécurité le plus important en Espagne et l'un des plus importants en Europe. Avec pour mission de promouvoir les connaissances techniques, ce congrès est un point de rencontre bouillonnant pour les professionnels de la technologie et de la cybersécurité dans toutes les disciplines.
{% embed url="https://www.rootedcon.com/" %}
Qu'est-ce qu'un en-tête hop-by-hop ?
Un en-tête hop-by-hop est un en-tête conçu pour être traité et consommé par le proxy qui traite actuellement la requête, par opposition à un en-tête de bout en bout.
Selon RFC 2616, la spécification HTTP/1.1 traite par défaut les en-têtes suivants comme hop-by-hop : Keep-Alive
, Transfer-Encoding
, TE
, Connection
, Trailer
, Upgrade
, Proxy-Authorization
et Proxy-Authenticate
. Lorsqu'il rencontre ces en-têtes dans une requête, un proxy conforme doit traiter ou exécuter ce que ces en-têtes indiquent, et ne pas les transmettre à l'étape suivante.
En plus de ces valeurs par défaut, une requête peut également définir un ensemble personnalisé d'en-têtes à traiter comme hop-by-hop en les ajoutant à l'en-tête Connection
, comme ceci :
Connection: close, X-Foo, X-Bar
La théorie de l'abus des en-têtes hop-by-hop
En théorie, les mandataires devraient supprimer les en-têtes hop-by-hop reçus avant de les envoyer à la prochaine adresse. Mais vous pouvez constater dans la nature que cela est fait par certains mandataires et que d'autres envoient simplement tous les en-têtes en ajoutant leur propre en-tête Connection
.
Test de suppression hop-by-hop
Si vous trouvez un en-tête qui modifie la réponse du serveur s'il est défini ou non, vous pouvez rechercher des suppressions hop-by-hop. Par exemple, l'en-tête de cookie fera en sorte que la réponse du serveur soit radicalement différente si elle est définie (avec un contenu valide) ou non.
Ainsi, envoyez une demande avec un en-tête valide et avec cette valeur de l'en-tête Connection Connection: close, Cookie
si la réponse est la même que si le cookie n'était pas envoyé, alors il y a un mandataire qui supprime les en-têtes.
Vous pouvez trouver si la réponse du serveur est différente si un en-tête est supprimé en utilisant cette technique en utilisant ce script. Ensuite, si vous passez une liste d'en-têtes connus, tels que celle-ci, vous pouvez observer quels en-têtes causent des effets malgré le fait qu'ils ne soient pas dans votre demande initiale :
for HEADER in $(cat headers.txt); do python poison-test.py -u "https://target" -x "$HEADER"; sleep 1; done
Cela va parcourir toute la liste des en-têtes et afficher si sa présence dans la liste hop-by-hop a créé un code d'état différent ou une taille de corps de réponse différente.
Abus de X-Forwarded-For
En général, les mandataires ajouteront les adresses IP des clients à l'intérieur de l'en-tête X-Forwarded-For
afin que le prochain saut sache d'où vient la demande. Cependant, si un attaquant envoie une valeur de connexion telle que Connection: close, X-Forwarded-For
et que le premier mandataire envoie les en-têtes hop-by-hop avec leurs valeurs (il envoie la valeur de connexion spéciale), alors la deuxième valeur peut supprimer l'en-tête X-Forward-For.
À la fin, l'application finale ne saura pas qui a envoyé la demande et peut penser que c'était le dernier mandataire, et dans ce scénario, un attaquant peut être en mesure d'accéder à des ressources protégées par une liste blanche d'adresses IP (peut-être certains /admin
?).
Selon le système ciblé, vous pouvez également avoir Forwarded
, X-Real-IP
et une multitude d'autres qui sont moins courants.
Détection de mandataires et empreinte des services
Cette technique peut être utile pour détecter les mandataires (en utilisant la technique des cookies) ou même pour détecter les services. Par exemple, si vous abusez de cette technique pour supprimer l'en-tête X-BLUECOAT-VIA
et qu'une erreur est générée, alors vous avez découvert que Bluecoat était utilisé.
Autres attaques
- Pour un possible empoisonnement de cache DoS en abusant de cette technique, lisez le lien original
- Cela pourrait être utile dans des attaques qui pourraient vous permettre d'insérer de nouveaux en-têtes (faible probabilité)
- Aussi, cela pourrait être utile pour contourner les fonctionnalités de défense. Par exemple, si l'absence d'un en-tête signifie qu'une demande ne doit pas être traitée par un WAF, vous pourriez contourner un WAF avec cette technique.
Références
{% embed url="https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers" %}
RootedCON est l'événement le plus pertinent en matière de cybersécurité en Espagne et l'un des plus importants en Europe. Avec la mission de promouvoir les connaissances techniques, ce congrès est un point de rencontre bouillonnant pour les professionnels de la technologie et de la cybersécurité dans chaque discipline.\
{% embed url="https://www.rootedcon.com/" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez The PEASS Family, notre collection exclusive de NFT
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et hacktricks-cloud.