Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
Log in
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CTF_WRITEUPS-TryHackMe-CVE-2021-41773- — CTF_WRITEUPS/TryHackMe /CVE-2021-41773/ | Kitploit
उपकरण/GitHubGitHub/hackedrishi/ctf_writeups-tryhackme-cve-2021-41773-
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षाCTFलर्निंग और शिक्षालैब और अभ्यास
GitHubhackedrishi/ctf_writeups-tryhackme-cve-2021-41773-

CTF_WRITEUPS-TryHackMe-CVE-2021-41773-

CTF_WRITEUPS/TryHackMe /CVE-2021-41773/

रिपॉजिटरी देखें
71 साल पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CTF_WRITEUPS-TryHackMe-CVE-2021-41773-

CTF_WRITEUPS/TryHackMe /CVE-2021-41773/

CVE-2021-41773/42013

Apache पथ पारगमन बग और अधूरे फिक्स का संक्षिप्त विवरण

कार्य 1: थोड़ा पृष्ठभूमि...

एक संक्षिप्त इतिहास

5 अक्टूबर 2021 को, Apache HTTP Server v2.4.49 पर पथ पारगमन हमले का विवरण देने वाला एक CVE जारी किया गया। CVE-2021-41773 नंबर दिया गया, इसे निम्नलिखित विवरण के साथ जारी किया गया:

Apache HTTP Server 2.4.49 में पथ सामान्यीकरण में किए गए बदलाव में एक दोष पाया गया। एक हमलावर पथ पारगमन हमले का उपयोग करके URLs को अपेक्षित दस्तावेज़ रूट के बाहर फ़ाइलों से मैप कर सकता है। यदि दस्तावेज़ रूट के बाहर की फ़ाइलें "require all denied" द्वारा सुरक्षित नहीं हैं, तो ये अनुरोध सफल हो सकते हैं। इसके अतिरिक्त (sic) यह दोष CGI स्क्रिप्ट जैसी व्याख्या की गई फ़ाइलों के स्रोत को लीक कर सकता है। यह मुद्दा जंगली में शोषण किया जा रहा है। यह मुद्दा केवल Apache 2.4.49 को प्रभावित करता है, पुराने संस्करणों को नहीं।

आइए इसे तोड़ें और देखें कि हमारे लिए इसका वास्तव में क्या अर्थ है:

  • पहले भाग से, हम देखते हैं कि एक हालिया बदलाव ने दोष को उजागर किया। पथ सामान्यीकरण का मतलब है कि हम किसी दिए गए पथ को किसी विहित रूप में बदल देते हैं जिसे सॉफ़्टवेयर समझ सकता है, और इस प्रकार वास्तविक फ़ाइल सिस्टम से मैप कर सकता है। यह पहले से ही हमें एक पथ पारगमन हमले का संदेह कराता है जो संभावित रूप से अनजाने फ़ाइलों को पढ़ सकता है।
  • अगला भाग हमारे संदेह की पुष्टि करता है, और हम इच्छित दायरे के बाहर संसाधनों को पढ़ने के लिए पथ पारगमन हमले का उपयोग करने में सक्षम हैं।
  • हम देखते हैं कि हमें एक विशेष कॉन्फ़िगरेशन सेट करने की आवश्यकता है। दस्तावेज़ रूट के बाहर की फ़ाइलों को स्पष्ट रूप से अनुमतियाँ दी जानी चाहिए। यह डिफ़ॉल्ट कॉन्फ़िगरेशन नहीं है और इस प्रकार यह शोषण अधिकांश Apache होस्टों के खिलाफ बेकार होना चाहिए (शुक्र है)।
  • अगला भाग CGI स्क्रिप्ट के बारे में बात करता है, जो हमें गलती से विश्वास दिलाता है कि इस हमले के काम करने के लिए CGI को सक्षम करने की आवश्यकता हो सकती है या पथ में किसी तरह से CGI शामिल है।
  • भले ही हमारा कॉन्फ़िगरेशन इस बग से सीधे प्रभावित न हो, फिर भी हम कमजोर संस्करणों को ASAP अपडेट करना चाहेंगे।

बहुत सारे फिक्स बाद में...

तो Apache ने इस बग को ठीक किया और v2.4.50 जारी किया। कहानी का अंत, है ना? खैर, बिल्कुल नहीं। केवल 2 दिन बाद, 7 अक्टूबर को, पिछले CVE का हवाला देते हुए एक नया CVE जारी किया गया। इसमें उल्लेख किया गया कि पिछले पथ पारगमन हमले का फिक्स अधूरा था, और हम अभी भी पारगमन कर सकते हैं यदि प्रश्न में पथ अपने URLs को फ़ाइल सिस्टम पर मैप करने के लिए एलियास निर्देश का उपयोग करता है। CVE को नंबर CVE-2021-42013 दिया गया, निम्नलिखित विवरण के साथ:

यह पाया गया कि Apache HTTP Server 2.4.50 में CVE-2021-41773 का फिक्स अपर्याप्त था। एक हमलावर पथ पारगमन हमले का उपयोग करके URLs को एलियास-जैसे निर्देशों द्वारा कॉन्फ़िगर की गई निर्देशिकाओं के बाहर फ़ाइलों से मैप कर सकता है। यदि इन निर्देशिकाओं के बाहर की फ़ाइलें सामान्य डिफ़ॉल्ट कॉन्फ़िगरेशन "require all denied" द्वारा सुरक्षित नहीं हैं, तो ये अनुरोध सफल हो सकते हैं। यदि इन एलियास्ड पथों के लिए CGI स्क्रिप्ट भी सक्षम हैं (sic), तो यह रिमोट कोड एक्ज़ीक्यूशन (RCE) की अनुमति दे सकता है। यह मुद्दा केवल Apache 2.4.49 और Apache 2.4.50 को प्रभावित करता है, पुराने संस्करणों को नहीं।

पहले की तरह, हम यहां कुछ बातें सीख सकते हैं:

  • जबकि पहले शोषण को कथित तौर पर ठीक कर दिया गया था, पारगमन को काम करने की अनुमति देने के लिए एक और इनपुट है (इसे बाद में याद रखें)।
  • अब हम एलियास्ड पथ निर्देशों तक सीमित हैं।
  • सामान्य पथों के बाहर की निर्देशिकाओं को अभी भी स्पष्ट अनुमतियाँ दी जानी चाहिए।
  • यदि CGI सक्षम है, तो हम सरल प्रकटीकरण के अलावा RCE भी प्राप्त कर सकते हैं 😲

जब हम इस पागलपन को संसाधित कर रहे हैं, हम अगले कार्य में आवश्यक कॉन्फ़िगरेशन पर गौर करेंगे।

नीचे दिए गए प्रश्नों के उत्तर दें

  1. Apache httpd का कौन सा संस्करण प्रारंभ में इस CVE के लिए कमजोर था?
  • 2.4.49
  1. इस कमजोरी के लिए शोषण योग्य होने के लिए एक असामान्य मिसकॉन्फ़िगरेशन की आवश्यकता है (हाँ/नहीं)
  • हाँ

कार्य 2: वैसे भी पथ पारगमन क्या है?

थ्योरी का एक टुकड़ा

पथ पारगमन एक हमला है जिसका उद्देश्य पथ समाधान और/या सामान्यीकरण में दोषों का दुरुपयोग करके सामान्य रूप से दुर्गम संसाधनों तक पहुँचना है। हम आमतौर पर .. सिंटैक्स का उपयोग करके कल्पित रूट से पीछे (पारगमन के रूप में भी जाना जाता है) यात्रा करके इस प्रकार के हमले का शोषण करते हैं।

सामान्यीकरण? क्या?

आम तौर पर, किसी फ़ाइल को खोजने के लिए किसी कोड को पथ प्रदान करते समय, एक निरपेक्ष पथ आवश्यक होता है। आइए इसे विहित पथ कहते हैं। जब इसके बजाय एक सापेक्ष पथ दिया जाता है, तो इसे एक विहित रूप में सामान्यीकृत किया जाना चाहिए ताकि OS लाइब्रेरीज़ जो उस पथ का उपयोग करती हैं, फिर प्रश्न में संसाधन ढूंढ सकें। बेशक यह एक अति सरलीकरण है, लेकिन मूल बात वही रहती है।

सामान्य तौर पर, हमारे लिए यह सामान्यीकरण करने के लिए प्लेटफ़ॉर्म लाइब्रेरीज़ मौजूद हैं, लेकिन C/C++ में हम आमतौर पर सब कुछ स्वयं करते हैं। जबकि यह कुछ लचीलापन प्रदान कर सकता है, यह आसानी से दोष भी पेश कर सकता है यदि हमारा कार्यान्वयन सही न हो।

URLs को सामान्यीकृत करना

एक HTTP सर्वर को सही फ़ाइल प्रस्तुत करने के लिए URL को फ़ाइल सिस्टम पर एक विहित पथ में अनुवाद करना होता है। जबकि दस्तावेज़ रूट से परे पारगमन से बचने के लिए निश्चित रूप से कुछ फ़िल्टर मौजूद हैं, कुछ उपयोग मामलों को आसानी से छोड़ा जा सकता है। इस मामले में, शोषण न केवल URL एन्कोडिंग (हम इस पर थोड़ी देर बाद आएंगे) बल्कि एलियास मॉड्यूल के पथ सामान्यीकरण में एक दोष (कथित तौर पर) का लाभ उठाता है।

URL एन्कोडिंग पर एक छोटी सी जानकारी

RFC 3986 धारा 2 में परिभाषित, URL एन्कोडिंग एक योजना है जिसका उपयोग URL के भीतर विशेष या आरक्षित वर्णों को एन्कोड करने के लिए किया जाता है। उदाहरण के लिए, URL में रिक्त स्थान को + वर्ण के रूप में एन्कोड किया जाता है (विशेष रूप से क्वेरी पैरामीटर में)। यदि हम एक वास्तविक प्लस को एन्कोड करना चाहते हैं, तो हमें इसे "प्रतिशत-एन्कोडिंग" के रूप में ज्ञात विधि का उपयोग करके एन्कोड करना होगा। इसमें केवल वर्ण के US-ASCII हेक्साडेसिमल कोड को % चिह्न से उपसर्ग करना शामिल है। हमारे उदाहरण में, + प्रतीक को %2B के रूप में एन्कोड किया जा सकता है।

किसी भी वर्ण को URL-एन्कोड किया जा सकता है, और पूरी तरह से URL-एन्कोडेड URLs कार्यात्मक रूप से गैर-एन्कोडेड संस्करण के समतुल्य होते हैं। RFC से: यदि दो URIs केवल प्रतिशत-एन्कोडेड ऑक्टेट में उपयोग किए गए हेक्साडेसिमल अंकों के मामले में भिन्न हैं, तो वे समतुल्य हैं।

तो Apache के साथ क्या हुआ?

Apache सर्वर में पथ सामान्यीकरण मॉड्यूल में एक हालिया बदलाव ने तब एक विशेष रूप से तैयार किए गए URL को फ़िल्टर को बायपास करने और दस्तावेज़ रूट से परे पारगमन करने की अनुमति दी, जिससे सिस्टम पर मनमानी फ़ाइल पढ़ने की अनुमति मिली, यदि कॉन्फ़िगरेशन इसकी अनुमति देता है। इसके अलावा, यदि CGI मॉड्यूल सक्षम था, तो मनमानी फ़ाइल निष्पादन भी संभव है!

नीचे दिए गए प्रश्नों के उत्तर दें

  1. पथ पारगमन शोषण (सबसे अच्छा उत्तर चुनें):

A) सर्वर पर संसाधित होने के लिए मनमानी रिमोट फ़ाइलों को शामिल करता है। B) सर्वर पर संसाधित होने के लिए मनमानी स्थानीय फ़ाइलों को शामिल करता है। C) सर्वर द्वारा मनमानी फ़ाइलों को उजागर करने की अनुमति देता है। D) उपरोक्त में से कोई नहीं।

  • C
  1. . प्रतीक को URL-एन्कोड करें
  • %2E
  1. यह URL खंड किसमें डिकोड होता है: %%32%65 ?
  • %2E

कार्य 3: ठीक है, ठीक है; हैक्स दो!

मज़े के लिए Apache को हैक करना

तो अब जब थ्योरी खत्म हो गई है, तो आइए इस दोष का शोषण करने के लिए आगे बढ़ें। सबसे पहले, हमें Apache का एक कमजोर संस्करण चाहिए। शुक्र है कि इसके लिए हमारे पास डॉकर है :)```
user@machine$ docker pull httpd:2.4.49 2.4.49: Pulling from library/httpd 07aded7c29c6: Already exists 05bb40c8f148: Already exists 0827b74117da: Already exists 35a526fdcc7d: Pull complete 59fed288cd32: Pull complete Digest: sha256:dcba0d12e2362fb0c50ec524ae8aa1cca4a4ba7216617a57e7bbca20767e79cc Status: Downloaded newer image for httpd:2.4.49 docker.io/library/httpd:2.4.49

**कॉन्फ़िगरेशन**
टूल डाउनलोड करें