<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.
इस समस्या का मुख्य कारण यह है कि **रिवर्स प्रॉक्सी****HTTP/2** का उपयोग करके **क्लाइंट से बात करेगा** लेकिन फिर वह उस **संचार** को **HTTP/1.1** में **परिवर्तित** कर देगा।
इस दृष्टिकोण की समस्या यह है कि **उपयोगकर्ता****HTTP/2 संचार** में अनावश्यक **हेडर्स** को **इंजेक्ट** करने में सक्षम होगा जिन्हें शायद प्रॉक्सी द्वारा **जांचा नहीं जाएगा**। लेकिन फिर, जब वे **HTTP/1.1 संचार** में **अंधाधुंध इंजेक्ट किए जाते हैं**, **रिक्वेस्ट स्मगलिंग हमला किया जा सकता है**।
HTTP/2 विनिर्देश बताता है कि **Content-Length हेडर की आवश्यकता नहीं है लेकिन इंगित किया जा सकता है**। इसलिए, **रिवर्स प्रॉक्सी****उपयोगकर्ताओं द्वारा भेजी गई सभी सामग्री को अनुरोध के रूप में मानेगा**, लेकिन फिर, जब **HTTP/1.1 में डाउनग्रेड किया जाता है**, यह **हेडर****अनुरोध में इंजेक्ट किया जाएगा** और इसलिए, **बैक-एंड अनुरोध को 2 अलग-अलग अनुरोधों के रूप में मानेगा** जैसा कि आप नीचे चित्र में देख सकते हैं:
HTTP/2 विनिर्देश यह भी इंगित करता है कि **किसी भी संदेश में कनेक्शन-विशिष्ट हेडर फील्ड्स होने चाहिए जिन्हें विकृत के रूप में माना जाना चाहिए... लेकिन यदि आप इस नियम का पालन नहीं करते हैं, तो आप संवेदनशील हैं**।
इस तकनीक का AWS लोड बैलेंसर पर दुरुपयोग किया गया था, इसलिए सुनिश्चित करना कि उपयोगकर्ता एक Host हेडर को एक सर्वर की ओर इंगित करते हैं जिसे हमलावर नियंत्रित करता है, उन्हें उस सर्वर तक पहुंचाएगा।
यह वही तकनीक है जैसा कि पहले, लेकिन जेम्स ने देखा कि ग्राहक उसे अपनी साख प्रेषित करने के लिए कह रहे थे, इसलिए उसने बस अपने सर्वर को लोगों की साख उसे भेजने के लिए CORS की अनुमति देने के लिए संशोधित किया:
**HTTP/2 हेडर्स में अनुमति नहीं दिए गए अक्षरों को डालने की अनुमति नहीं देगा**, लेकिन यदि सर्वर **इस नियम का सम्मान नहीं कर रहा है**, तो आप **मनमाने हेडर्स को इंजेक्ट कर सकते हैं** जब संचार को **HTTP/1.1 में डाउनग्रेड किया जाता है**।
कभी-कभी आप पाएंगे कि HTTP Request Smuggling हमला करते समय **आप केवल अपने आप पर हमला कर सकते हैं**। यह इसलिए हो सकता है क्योंकि रिवर्स प्रॉक्सी ने प्रति IP बैक-एंड सर्वर के साथ **एक अलग कनेक्शन का उपयोग करने का निर्णय लिया है**।
ध्यान दें कि **यहां तक कि** उस **प्रतिबंध** के साथ भी आप **अधिकृतता बायपास**, आंतरिक हेडर्स की लीकेज और **कैश डिसेप्शन और कैश पॉइज़निंग** हमले जैसे हमले कर सकते हैं।
आमतौर पर यह प्रतिबंध मौजूद नहीं होता है इसलिए आप **रिवर्स प्रॉक्सी और बैक एंड के बीच कनेक्शन में अनुरोध को स्मगल कर सकते हैं** जिसका उपयोग अन्य लोग कर रहे हैं, लेकिन यह भी **संभव** है कि **प्रॉक्सी** एक ही IP से कनेक्शन के साथ भी **कनेक्शन का पुन: उपयोग नहीं करता है** (इस प्रकार के हमले के लिए काफी कठोर प्रतिबंध)।
सबसे कठोर प्रतिबंध (कोई कनेक्शन पुन: उपयोग नहीं) में आप समय आधारित तकनीक के साथ भेद्यता का पता लगाएंगे, लेकिन फिर इसे परीक्षण करते समय आप पाएंगे कि यह एक "गलत सकारात्मक" है।
**HTTP/1.1** की **समस्या** यह है कि यदि आप **2 HTTP प्रतिक्रियाएं प्राप्त करते हैं** तो आप **नहीं जानते** कि एंडपॉइंट **भेद्य था** या नहीं और **"स्मगल" किया गया अनुरोध सिर्फ एक सामान्य अनुरोध के रूप में माना गया था**।