11 KiB
HTTP Response Smuggling / Desync
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी HackTricks में विज्ञापित हो या HackTricks को PDF में डाउनलोड करें तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या Twitter पर मेरा अनुसरण करें 🐦 @carlospolopm.
- अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos.
इस पोस्ट की तकनीक वीडियो से ली गई थी: https://www.youtube.com/watch?v=suxDcYViwao&t=1343s
HTTP Request Queue Desynchronisation
सबसे पहले, यह तकनीक एक HTTP Request Smuggling वंशावली का दुरुपयोग करती है, इसलिए आपको जानना चाहिए कि यह क्या है:
इस तकनीक और एक सामान्य HTTP Request smuggling के मुख्य अंतर का **यह है कि विक्टिम के अनुरोध को अटैक करने की बजाय उसके प्रतिक्रिया को लीक या संशोधित करने की जानकारी देने के लिए है। इसे, HTTP Request smuggling का दुरुपयोग करने के लिए 1 अनुरोध और आधा भेजने की बजाय, 2 पूर्ण अनुरोध भेजें ताकि प्रॉक्सी की प्रतिक्रिया कतार को असमयित किया जा सके।
यह इसलिए है क्योंकि हम प्रतिक्रिया कतार को असमयित कर सकते हैं ताकि विक्टिम के वैध अनुरोध की प्रतिक्रिया अटैकर को भेजी जाए, या विक्टिम को प्रतिक्रिया में अटैकर नियंत्रित सामग्री डालकर संशोधित किया जा सके।
HTTP Pipeline Desync
HTTP/1.1 अनुमति देता है कि पिछले वाले का इंतजार किए बिना विभिन्न संसाधनों के लिए पूछा जा सके। इसलिए, यदि किसी प्रॉक्सी में बीच में है, तो यह प्रॉक्सी का कार्य है कि बैक-एंड को भेजे गए अनुरोधों की और से एक समकृत मिलान बनाए रखना।
हालांकि, प्रतिक्रिया कतार को असमयित करने में समस्या है। यदि एक हमलावर एक HTTP Response smuggling हमला भेजता है और प्रारंभिक अनुरोध और अवैध अनुरोध के प्रतिक्रियाएं तुरंत दी जाती हैं, तो अवैध प्रतिक्रिया विक्टिम प्रतिक्रिया कतार में समाहित नहीं की जाएगी बल्कि एक त्रुटि के रूप में केवल छोड़ दी जाएगी।
इसलिए, चाहिए कि अवैध अनुरोध को प्रोसेस करने में अधिक समय लगे। इसलिए, जब अवैध अनुरोध प्रोसेस होता है, तो हमलावर के साथ संचार समाप्त हो जाएगा।
यदि इस विशेष स्थिति में एक विक्टिम ने एक अनुरोध भेजा है और अवैध अनुरोध पहले जवाब दिया जाता है, तो अवैध प्रतिक्रिया विक्टिम को भेजी जाएगी। इसलिए, हमलावर विक्टिम द्वारा "किया गया" अनुरोध नियंत्रित कर रहा होगा।
इसके अतिरिक्त, यदि हमलावर फिर एक अनुरोध करता है और विक्टिम के लिए वैध प्रतिक्रिया उत्तर दिया जाता है पहले हमलावर के अनुरोध से। तो विक्टिम को प्रतिक्रिया हमलावर को भेजी जाएगी, विक्टिम के लिए प्रतिक्रिया चोरी (जिसमें उदाहरण के लिए हेडर Set-Cookie हो सकता है)।
एकाधिक नेस्टेड इन्जेक्शन
एक और रोचक अंतर सामान्य HTTP Request Smuggling के साथ है कि, एक सामान्य smuggling हमले में, लक्ष्य है कि विक्टिम के अनुरोध की शुरुआत संशोधित करना ताकि यह एक अप्रत्याशित क्रिया करे। HTTP Response smuggling हमले में, जैसे ही आप पूर्ण अनुरोध भेज रहे हैं, आप एक पेलोड में दसों प्रतिक्रियाएं डाल सकते हैं जो दसों उपयोगकर्ताओं को असमयित करेंगी जो डाली गई प्रतिक्रियाएं प्राप्त करेंगे।
वैध उपयोगकर्ताओं के बीच अधिक से अधिक दसों एक्सप्लॉइट्स को आसानी से वितरित करने के अलावा, यह सर्वर में डीओएस का कारण भी हो सकता है।
एक्सप्लॉइट संगठन
जैसा पहले स्पष्ट किया गया, इस तकनीक का दुरुपयोग करने के लिए, सर्वप्रथम अवैध संदेश को सर्वर में प्रोसेस करने में बहुत समय लगता है।
यदि हम विक्टिम की प्रतिक्रिया चोरी करने की कोशिश करना चाहते हैं तो यह समय लेने वाला अनुरोध पर्याप्त है। लेकिन यदि आप एक अधिक जटिल एक्सप्लॉइट करना चाहते हैं तो यह एक सामान्य संरचना होगी एक्सप्लॉइट के लिए।
सबसे पहले आधिकारिक अनुरोध का दुरुपयोग करना, फिर समय लेने वाला अनुरोध और फिर 1 या अधिक पेलोड अनुरोध जिनकी प्रतिक्रियाएं विक्टिम को भेजी जाएंगी।
HTTP Response Queue Desynchronisation का दुरुपयोग
अन्य उपयोगकर्ताओं के अनुरोध पकड़ना
HTTP Request Smuggling जाने गए payloads की तरह, आप एक महत्वपूर्ण अंतर से विक्टिम के अनुरोध को चोरी कर सकते हैं: इस मामले में आपको प्रतिक्रिया में प्रतिबिम्बित पैरामीटर के साथ अंतिम POST अनुरोध भेजने की आवश्यकता है और एक बड़ी Content-Length।
फिर, जब प्रारंभिक अनुरोध (नीला) प्रोसेस किया गया था और जब नींद वाला अनुरोध (पीला) प्रोसेस किया जा रहा था, जब एक विक्टिम से आने वाला अगला अनुरोध प्रतिबिम्बित पैरामीटर के बाद कतार में जोड़ दिया जाएगा:
फिर, विक्टिम को नींद वाले अनुरोध की प्रतिक्रिया मिलेगी और अगर उसी समय में हमलावर ने एक और अनुरोध भेजा, तो **