# HTTP Connection Contamination
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करना चाहिए? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
* प्राप्त करें [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें और PRs सबमिट करें** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **को**.
**इस पोस्ट की सामग्री ली गई है** [**https://portswigger.net/research/http-3-connection-contamination**](https://portswigger.net/research/http-3-connection-contamination)\*\*\*\*
वेब ब्राउज़र [**HTTP connection coalescing**](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing) का उपयोग करते हैं, जिससे वे एक ही **HTTP/2+** **कनेक्शन** का उपयोग कर सकते हैं जो **अलग-अलग वेबसाइटों** के लिए जाने वाले अनुरोधों के लिए होता है, जो एक ही IP पते को निर्धारित करते हैं और जो होस्टनाम के लिए मान्य TLS प्रमाणपत्र का उपयोग करते हैं।
**पहले अनुरोध रूटिंग** एक खतरनाक रिवर्स-प्रॉक्सी व्यवहार है जहां **प्रॉक्सी पहले अनुरोध का विश्लेषण करता है** ताकि वह यह निर्धारित कर सके कि उसे उसे किस बैक-एंड को रूट करना है, और फिर उसी कनेक्शन पर सभी **आगामी अनुरोधों** को **एक ही बैक-एंड** को भेजता है।
**कनेक्शन कोलेसिंग और पहले अनुरोध रूटिंग मिलकर अच्छी तरह से काम नहीं करते हैं**। उदाहरण के लिए, सोचें secure.example.com और wordpress.example.com दोनों एक रिवर्स प्रॉक्सी के पीछे बैठे हैं जो \*.example.com के लिए मान्य प्रमाणपत्र का उपयोग करता है।
```shell-session
$ nslookup wordpress.example.com
52.16.179.7 // reverse proxy that supports HTTP/2 and does first-request routing
$ nslookup secure.example.com
52.16.179.7 // same reverse proxy
$ openssl s_client -connect x.portswigger-labs.net:443
subject=/CN=*.example.com // wildcard TLS certificate
```
यदि ब्राउज़र **wordpress.example.com** पर एक **अनुरोध भेजने का प्रयास करता है** और इसके बाद **secure.example.com** को, तो ब्राउज़र कनेक्शन संग्रहण द्वारा **दोनों अनुरोधों को एक ही कनेक्शन पर भेजने के लिए मजबूर किया जाएगा**। पहले अनुरोध रूटिंग के कारण **secure.example.com पर किया गया अनुरोध गलती से WordPress बैक-एंड पर रूट हो जाएगा**। इसका मतलब है कि यदि आपको wordpress.example.com पर [XSS](https://portswigger.net/web-security/cross-site-scripting) मिलता है, तो आप इसका उपयोग secure.example.com को कमरे में ले जाने के लिए कर सकते हैं!
```javascript
// create HTTP/2+ connection
fetch('https://wordpress.example.com/', {credentials: 'include'})
// connection coalescing will force this down the same connection...
// ...leading to the front-end misrouting it to WordPress
// the browser thinks our injected JS is coming from secure.example.com
// exposing saved passwords, cookies, etc.
location='https://secure.example.com/plugin/x?q=