hacktricks/pentesting-web/http-response-smuggling-desync.md

59 lines
6.4 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# HTTP Response Smuggling / Desync
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
* 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**](https://github.com/sponsors/carlospolop)!
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
2023-06-03 13:10:46 +00:00
## Désynchronisation de la file d'attente de requêtes HTTP
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
Tout d'abord, cette technique **exploite une vulnérabilité de Smuggling de requêtes HTTP**, vous devez donc savoir ce que c'est :
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
La **principale** **différence** entre cette technique et un Smuggling de requêtes HTTP commun est que **au lieu d'attaquer la requête de la victime en y ajoutant un préfixe**, nous allons **fuir ou modifier la réponse que la victime reçoit**. Cela se fait en envoyant non pas 1 requête et demi pour exploiter le Smuggling de requêtes HTTP, mais **en envoyant 2 requêtes complètes pour désynchroniser la file d'attente des réponses des proxies**.
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
Cela est dû au fait que nous allons être en mesure de **désynchroniser la file d'attente de réponse** afin que la **réponse** de la **requête légitime** de la **victime soit envoyée à l'attaquant**, ou en **injectant un contenu contrôlé par l'attaquant dans la réponse à la victime**.
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
### Désynchronisation de la file d'attente de pipeline HTTP
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
HTTP/1.1 permet de demander **différentes ressources sans avoir besoin d'attendre les précédentes**. Par conséquent, s'il y a un **proxy** au **milieu**, c'est le rôle des proxies de **maintenir une correspondance synchronisée des requêtes envoyées au backend et des réponses qui en proviennent**.
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
Cependant, il y a un problème de désynchronisation de la file d'attente des réponses. Si un attaquant envoie une attaque de Smuggling de réponse HTTP et que les réponses à la **requête initiale et à celle contrebandée sont répondues immédiatement**, la réponse contrebandée ne sera pas insérée dans la file d'attente de la réponse de la victime, mais sera simplement **rejetée comme une erreur**.
2021-11-05 20:59:42 +00:00
2022-03-09 12:12:51 +00:00
![](<../.gitbook/assets/image (635) (1) (1) (1).png>)
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
Par conséquent, il est nécessaire que la **requête contrebandée prenne plus de temps à être traitée** à l'intérieur du serveur back-end. Par conséquent, au moment où la requête contrebandée est traitée, la communication avec l'attaquant sera terminée.
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
Si dans cette situation spécifique une **victime a envoyé une requête** et que la **requête contrebandée est répondue avant** la requête légitime, la **réponse contrebandée sera envoyée à la victime**. Par conséquent, l'attaquant **contrôlera la requête "effectuée" par la victime**.
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
De plus, si l'attaquant effectue ensuite une requête et que la réponse légitime à la requête de la victime est répondue avant la requête de l'attaquant. La **réponse à la victime sera envoyée à l'attaquant**, **volant** la réponse à la victime (qui peut contenir par exemple l'en-tête **Set-Cookie**).
2021-11-05 20:59:42 +00:00
2022-03-09 12:12:51 +00:00
![](<../.gitbook/assets/image (658) (1).png>)
2021-11-05 20:59:42 +00:00
2022-04-22 08:32:18 +00:00
![](<../.gitbook/assets/image (655) (1) (1) (1).png>)
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
### Multiples injections imbriquées
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
Une autre **différence intéressante** avec le Smuggling de requêtes HTTP commun est que, dans une attaque de contrebande de réponse HTTP commune, l'**objectif** est de **modifier le début de la requête de la victime**
## Références
2021-11-05 20:59:42 +00:00
2023-06-03 13:10:46 +00:00
* N'oubliez pas de regarder cette vidéo qui explique très bien toutes ces techniques: [https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s](https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
* 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**](https://github.com/sponsors/carlospolop)!
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](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** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>