11 KiB
HTTP Response Smuggling / Desync
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी HackTricks में विज्ञापित हो या HackTricks को PDF में डाउनलोड करें तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- हमारा विशेष NFTs संग्रह, खोजें The PEASS Family
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @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 हमला भेजता है और आरंभिक अनुरोध और अवैध अनुरोध के प्रतिक्रियाएं तुरंत प्रतिसाद देती हैं, तो अवैध प्रतिक्रिया विक्टिम प्रतिक्रिया की कतार में समाहित नहीं की जाएगी बल्कि बस एक त्रुटि के रूप में छोड़ दी जाएगी।
इसलिए, चाहिए कि अवैध अनुरोध को प्रोसेस करने में अधिक समय लगे। इसलिए, जब अवैध अनुरोध प्रोसेस होता है, तो हमलावर के साथ संचार समाप्त हो जाएगा।
यदि इस विशेष स्थिति में एक विक्टिम ने एक अनुरोध भेजा है और अवैध अनुरोध पहले प्रतिसाद दिया जाता है तो अवैध प्रतिक्रिया विक्टिम को भेजी जाएगी। इसलिए, हमलावर विक्टिम द्वारा "किया गया" अनुरोध नियंत्रित कर रहा होगा।
इसके अतिरिक्त, यदि हमलावर फिर एक अनुरोध करता है और विक्टिम के लिए वैध प्रतिक्रिया उत्तर दिया जाता है पहले हमलावर के अनुरोध से पहले हमलावर के अनुरोध का उत्तर भेजा जाएगा। इससे, विक्टिम को उत्तर के लिए हमलावर को भेज दिया जाएगा।
एकाधिक नेस्टेड इंजेक्शन
सामान्य HTTP Request Smuggling के साथ एक रोचक अंतर यह है कि, एक सामान्य smuggling हमले में, लक्ष्य है कि विक्टिम के अनुरोध की शुरुआत संशोधित करें ताकि यह एक अप्रत्याशित क्रिया करे। एक HTTP Response smuggling हमले में, जैसे ही आप पूर्ण अनुरोध भेजते हैं, आप एक पेलोड में दसों प्रतिक्रियाएं डेसिंक्रोनाइज़ कर सकते हैं जो दसों उपयोगकर्ताओं को डेसिंक्रोनाइज़ करेंगी जो डेसिंक्रोनाइज़ किए गए प्रतिक्रियाएं प्राप्त करेंगे।
वैध उपयोगकर्ताओं के बीच अधिक से अधिक दसों एक्सप्लॉइट्स को आसानी से वितरित करने के अलावा, यह सर्वर में डोएस का कारण भी बन सकता है।
हमले संगठन
जैसा पहले स्पष्ट किया गया, इस तकनीक का दुरुपयोग करने के लिए, सर्वप्रथम अवैध संदेश को सर्वर में प्रोसेस करने में बहुत समय लगता है।
यदि हम विक्टिम की प्रतिक्रिया चुराने का प्रयास करना चाहते हैं तो यह समय लेने वाला अनुरोध पर्याप्त है। लेकिन यदि आप एक अधिक जटिल हमला करना चाहते हैं तो यह हमले के लिए एक सामान्य संरचना होगी।
सबसे पहले आरंभिक अनुरोध जो HTTP Request smuggling का दुरुपयोग करता है, फिर समय लेने वाला अनुरोध और फिर 1 या अधिक पेलोड अनुरोध जिनकी प्रतिक्रियाएं विक्टिम को भेजी जाएंगी।
HTTP Response Queue Desynchronisation का दुरुपयोग
अन्य उपयोगकर्ताओं के अनुरोध पकड़ना
HTTP Request Smuggling जाने गए payloads की तरह, आप एक महत्वपूर्ण अंतर से विक्टिम के अनुरोध चुरा सकते हैं एक महत्वपूर्ण अंतर से: इस मामले में आपको प्रतिक्रिया में प्रतिबिंबित पैरामीटर के साथ अंतिम POST अनुरोध भेजने की आवश्यकता है और एक बड़ी Content-Length।
फिर, जब आरंभिक अनुरोध (नीला) प्रोसेस हो गया था और जब नींद वाला अनुरोध (पीला) प्रोसेस हो रहा था, विक्टिम से आने वाला अगला अनुरोध **प्रत