
Apache 2.4.49-2.4.50 पाथ ट्रैवर्सल और RCE (CVE-2021-41773, CVE-2021-42013) के लिए एक्सप्लॉइट टूल। URL सूचियों को स्कैन करता है, CGI और गैर-CGI के साथ काम करता है, और शोषण को स्वचालित करता है।
Apache/2.4.49-2.4.50 में पाथ ट्रैवर्सल अटैक और RCE
-> URL की सूची लें
-> CGI और गैर-CGI दोनों के लिए काम करता है
-> Apache/2.4.49 - 2.4.50 के लिए काम करता है
$ git clone https://github.com/CalfCrusher/Path-traversal-RCE-Apache-2.4.49-2.4.50-Exploit
$ cd Path-traversal-RCE-Apache-2.4.49-2.4.50-Exploit && pip3 install -r requirements.txt
$ python3 main.py urls.txt
5 अक्टूबर 2021 को, Apache HTTP Server v2.4.49 पर पाथ ट्रैवर्सल अटैक का विवरण देने वाला एक CVE जारी किया गया। इसे CVE-2021-41773 नंबर दिया गया, और इसे निम्नलिखित विवरण के साथ जारी किया गया:
Apache HTTP Server 2.4.49 में पाथ नॉर्मलाइज़ेशन में किए गए बदलाव में एक दोष पाया गया।
एक हमलावर पाथ ट्रैवर्सल अटैक का उपयोग करके URL को अपेक्षित डॉक्यूमेंट रूट के बाहर की फाइलों से मैप कर सकता है। यदि डॉक्यूमेंट रूट के बाहर की फाइलें "require all denied" द्वारा सुरक्षित नहीं हैं, तो ये अनुरोध सफल हो सकते हैं।
इसके अतिरिक्त (sic) यह दोष CGI स्क्रिप्ट जैसी व्याख्या की गई फाइलों के स्रोत को लीक कर सकता है।
यह समस्या जंगल में शोषित होने के लिए जानी जाती है। यह समस्या केवल Apache 2.4.49 को प्रभावित करती है, पहले के संस्करणों को नहीं।
आइए इसे तोड़कर देखें कि यह हमारे लिए वास्तव में क्या मायने रखता है:
पहले भाग से, हम देखते हैं कि एक हालिया बदलाव ने इस दोष को उजागर किया। पाथ नॉर्मलाइज़ेशन का मतलब है कि हम किसी दिए गए पाथ को किसी कैनोनिकल रूप में बदलते हैं जिसे सॉफ्टवेयर समझ सकता है, और इस प्रकार वास्तविक फाइलसिस्टम से मैप करता है। यह पहले से ही हमें पाथ ट्रैवर्सल अटैक का संदेह कराता है जो संभावित रूप से अनपेक्षित फाइलों को पढ़ सकता है।
अगला भाग हमारे संदेह की पुष्टि करता है, और हम इच्छित दायरे के बाहर के संसाधनों को पढ़ने के लिए पाथ ट्रैवर्सल अटैक का उपयोग करने में सक्षम हैं।
हम देखते हैं कि हमें एक बहुत ही विशेष कॉन्फ़िगरेशन सेट करने की आवश्यकता है। डॉक्यूमेंट रूट के बाहर की फाइलों को स्पष्ट रूप से अनुमतियाँ दी जानी चाहिए। यह डिफ़ॉल्ट कॉन्फ़िगरेशन नहीं है और इस प्रकार यह एक्सप्लॉइट को Apache होस्ट्स के एक बड़े प्रतिशत के खिलाफ बेकार कर देता है (शुक्र है)।
अगला भाग CGI स्क्रिप्ट के बारे में बात करता है, जो गलती से हमें विश्वास दिलाता है कि इस अटैक के काम करने के लिए CGI सक्षम होना चाहिए या पाथ में किसी तरह CGI शामिल है।
भले ही हमारा कॉन्फ़िगरेशन इस बग से सीधे प्रभावित न हो, फिर भी हम कमजोर संस्करणों को ASAP अपडेट करना चाहेंगे।
संक्षेप में, इस कमजोरी का शोषण करने के लिए, हमें अपने लक्ष्य सर्वर पर एक बहुत ही असामान्य कॉन्फ़िगरेशन रखने की आवश्यकता होगी, और एक विशिष्ट पाथ के माध्यम से हमला करना होगा। बहुत सारे फिक्स बाद में...
इसलिए Apache ने इस बग को ठीक किया और v2.4.50 जारी किया। कहानी का अंत, है ना? खैर, बिल्कुल नहीं। केवल 2 दिन बाद, 7 अक्टूबर को, पिछले CVE का हवाला देते हुए एक नया CVE जारी किया गया। इसमें उल्लेख किया गया है कि पिछले पाथ ट्रैवर्सल अटैक का फिक्स अधूरा था, और हम अभी भी ट्रैवर्स कर सकते हैं यदि प्रश्न में पाथ अपने URL को फाइलसिस्टम से मैप करने के लिए एक alias निर्देश का उपयोग करता है। CVE को नंबर CVE-2021-42013 दिया गया, जिसका विवरण इस प्रकार है:
यह पाया गया कि Apache HTTP Server 2.4.50 में CVE-2021-41773 के लिए फिक्स अपर्याप्त था।
एक हमलावर पाथ ट्रैवर्सल अटैक का उपयोग करके URL को Alias-जैसे निर्देशों द्वारा कॉन्फ़िगर की गई निर्देशिकाओं के बाहर की फाइलों से मैप कर सकता है।
यदि इन निर्देशिकाओं के बाहर की फाइलें सामान्य डिफ़ॉल्ट कॉन्फ़िगरेशन "require all denied" द्वारा सुरक्षित नहीं हैं, तो ये अनुरोध सफल हो सकते हैं।
यदि इन alias किए गए पाथों (sic) के लिए CGI स्क्रिप्ट भी सक्षम हैं, तो यह रिमोट कोड एक्ज़ीक्यूशन की अनुमति दे सकता है। यह समस्या केवल Apache 2.4.49 और Apache 2.4.50 को प्रभावित करती है, पहले के संस्करणों को नहीं।
पहले की तरह, हम यहाँ कुछ चीजें सीख सकते हैं:
जबकि पहला एक्सप्लॉइट कथित तौर पर ठीक कर दिया गया था, ट्रैवर्सल को काम करने की अनुमति देने के लिए एक और इनपुट है (इसे बाद के लिए याद रखें)।
अब हम alias किए गए पाथ निर्देशों तक सीमित हैं।
सामान्य पाथों के बाहर की निर्देशिकाओं को अभी भी स्पष्ट अनुमतियाँ दिए जाने की आवश्यकता है।
यदि CGI सक्षम है, तो हम सरल प्रकटीकरण के अलावा RCE भी प्राप्त कर सकते हैं
कृपया ध्यान दें कि मैं किसी भी नुकसान और अवैध उपयोग के लिए जिम्मेदार नहीं हूँ। बेवकूफ मत बनो!