hacktricks/pentesting-web/parameter-pollution.md

11 KiB

पैरामीटर पोल्यूशन

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

यहाँ से कॉपी किया गया https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654

सारांश :

HTTP पैरामीटर पोल्यूशन (HPP) का अर्थ है एक वेब एप्लिकेशन के HTTP पैरामीटर्स को प्रदूषित करना ताकि एक विशिष्ट दुर्भावनापूर्ण कार्य को प्राप्त किया जा सके। यह HTTP अनुरोधों के दौरान एक वेबसाइट द्वारा प्राप्त पैरामीटर्स को कैसे ट्रीट करती है, उसे हेरफेर करने का संदर्भ देता है। यह एक वेबसाइट के व्यवहार को उसके इरादे से बदल देता है। HTTP पैरामीटर पोल्यूशन एक सरल प्रकार का हमला है लेकिन यह एक प्रभावी है।

जब आप किसी पैरामीटर को प्रदूषित करते हैं, तो कोड केवल सर्वर-साइड पर चलता है जो हमें दिखाई नहीं देता है, लेकिन हम अपनी स्क्रीन पर परिणाम देख सकते हैं। बीच की प्रक्रिया एक ब्लैक बॉक्स है।

उदाहरण के लिए, एक URL है https://www.anybank.com/send जिसमें तीन पैरामीटर हैं :

  1. from :
  2. to :
  3. amount :

URL : https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000

अब यह एक सामान्य URL है जो accountA से accountB को 10000 का लेन-देन करेगा लेकिन क्या होगा अगर हम एक और समान पैरामीटर “from :” जोड़ दें

तो URL होगा https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

जब यह URL 10000 का लेन-देन करेगा तो यह accountC से कटेगा बजाय accountA के। यही तरीका है जिससे आप HTTP पैरामीटर पोल्यूशन हमले में पैरामीटर्स को हेरफेर करते हैं। हालांकि इस कमजोरी का दायरा केवल GET अनुरोध तक सीमित नहीं है, आप इस हमले को POST आधारित अनुरोध पर भी कर सकते हैं। आप इस कमजोरी को पासवर्ड बदलने, 2FA, टिप्पणियों, प्रोफाइल फोटो अपलोड, उस पैरामीटर पर जहां API कुंजी पास की जाती है, OTP आदि पर आजमा सकते हैं।

जब आप किसी पैरामीटर को हेरफेर करते हैं, तो इसका हेरफेर इस बात पर निर्भर करता है कि प्रत्येक वेब तकनीक अपने पैरामीटर्स को कैसे पार्स कर रही है। आप “Wappalyzer” का उपयोग करके वेब तकनीकों की पहचान कर सकते हैं। नीचे कुछ तकनीकों और उनके पैरामीटर पार्सिंग का स्क्रीनशॉट है।तकनीकें और उनकी पैरामीटर पार्सिंग

Image for post

मैं अपनी एक खोज को साझा करना चाहूंगा जहां मैं HPP का उपयोग करके एक खाते को अधिग्रहण करने में सक्षम था।

मैंने इस कमजोरी को कैसे पाया ?

  1. मैं उस कार्यक्रम के लॉगिन पेज पर गया, उसने लॉगिन के लिए एक OTP मांगा

OTP भेजें

Image for post

2. मैंने एक ईमेल टाइप किया और "Send One Time Password" पर क्लिक किया

3. मैंने burp suite का उपयोग करके अनुरोध को इंटरसेप्ट किया और उसी पैरामीटर का उपयोग करके एक और ईमेल जोड़ा (मैंने परीक्षण के उद्देश्य से दो ईमेल बनाए थे)Burp अनुरोध

Image for post

4. मुझे shrey……@gmail.com का OTP मेरे दूसरे खाते radhika…..@gmail.com पर मिला OTP

Image for post

5. मैंने OTP को कॉपी किया और shrey….@gmail.com पर उस कार्यक्रम के लॉगिन स्क्रीन पर गया, मैंने यह OTP दर्ज किया और मैं खाते में था।खाता अधिग्रहण

Image for post

तो यहाँ क्या हुआ है कि बैक-एंड एप्लिकेशन ने पहले “email” पैरामीटर के मूल्य का उपयोग करके एक OTP उत्पन्न किया और दूसरे “email” पैरामीटर के मूल्य का उपयोग करके मूल्य प्रदान किया, जिसका अर्थ है कि shrey….@gmail.com का OTP radhika….@gmail.com पर भेजा गया था।

नोट : यहाँ 4थे चरण में एक छवि पर जहाँ मैंने radhika….@gmail.com पर OTP प्राप्त किया था मैं भ्रमित था क्योंकि संदेश में हाय राधिका लिखा था, इसलिए मैंने सोचा कि पैरामीटर प्रदूषित नहीं हुआ है और OTP radhika….@gmail.com के लिए था लेकिन जब मैंने OTP को shrey….@gmail.com पर आजमाया तो यह काम कर गया।

Flask & PHP

इस लेखन में आप देख सकते हैं कि a=1&a=2 जैसा HTTP क्वेरी Flask और PHP द्वारा Apache HTTP Server पर चलते समय अलग-अलग तरीके से व्याख्या किया जाएगा। Flask में, पैरामीटर 1 होगा (पहली घटना) जबकि PHP में यह 2 होगा (अंतिम घटना)।

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके: