
सीवीई-2021-41773 (Apache HTTP Server 2.4.49) को नियंत्रित पाथ ट्रैवर्सल और फ़ाइल प्रकटीकरण के माध्यम से दोहराने के लिए कस्टम Python PoC का उपयोग करने वाला Docker-आधारित लैब।
CVE-2021-41773 का पुनरुत्पादन, जो Apache HTTP Server 2.4.49 में एक पाथ ट्रैवर्सल (path traversal) भेद्यता है।
यह प्रोजेक्ट एक पृथक (isolated) भेद्य वातावरण बनाने के लिए Docker और नियंत्रित फ़ाइल प्रकटीकरण (controlled file disclosure) प्रदर्शित करने के लिए एक Python PoC का उपयोग करता है।
सुरक्षा: PoC केवल
localhost,127.0.0.1, या::1लक्ष्यों को स्वीकार करता है। परीक्षण पृथक लैब के अंदर ही रहना चाहिए।
यह प्रोजेक्ट निम्नलिखित प्रदर्शित करता है:
यह प्रदर्शन रिमोट कोड निष्पादन के बजाय फ़ाइल प्रकटीकरण पर केंद्रित है।
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
PoC केवल Python की मानक लाइब्रेरी का उपयोग करता है और इसमें किसी तृतीय-पक्ष Python पैकेज की आवश्यकता नहीं है।
रिपॉजिटरी के रूट से:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
इस टर्मिनल को चालू रखें।
Apache सेवा केवल इसके माध्यम से उपलब्ध है:
127.0.0.1:8080
दूसरे टर्मिनल में:
docker ps
कंटेनर में यह दिखना चाहिए:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
अपेक्षित:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
Apache परीक्षण पृष्ठ लौटाया जाना चाहिए।
PoC इस स्थान पर स्थित है:
exploit/exploit.py
चलाएँ:
python3 exploit/exploit.py
डिफ़ॉल्ट लक्ष्य है:
http://127.0.0.1:8080
डिफ़ॉल्ट प्रमाण फ़ाइल है:
/lab/secret.txt
एक सफल रन निम्नलिखित आउटपुट देता है:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
इसके बाद PoC नियंत्रित लैब फ़ाइल की सामग्री प्रदर्शित करता है।
PoC पहले जाँचता है कि लक्ष्य एक स्थानीय पता है:
localhost
127.0.0.1
::1
फिर यह एन्कोडेड ट्रैवर्सल घटकों वाला एक पथ तैयार करता है:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
अनुरोध Python के मानक socket मॉड्यूल का उपयोग करके भेजा जाता है। यह PoC को HTTP अनुरोध पथ पर सीधा नियंत्रण देता है।
भेद्य Apache 2.4.49 सर्वर निर्मित पथ को संसाधित करता है और इसकी सामग्री लौटाता है:
/lab/secret.txt
इस फ़ाइल को प्राप्त करना पाथ ट्रैवर्सल और नियंत्रित फ़ाइल प्रकटीकरण की पुष्टि करता है।
CVE: CVE-2021-41773
उत्पाद: Apache HTTP Server
प्रदर्शित प्रभावित संस्करण: 2.4.49
भेद्यता प्रकार: पाथ ट्रैवर्सल / फ़ाइल प्रकटीकरण
CVE-2021-41773, Apache HTTP Server 2.4.49 में एक पाथ ट्रैवर्सल भेद्यता है। एक विशेष रूप से निर्मित URL इच्छित पथ प्रतिबंधों को बायपास कर सकता है और अपेक्षित निर्देशिका के बाहर की फ़ाइलों तक पहुँच की अनुमति दे सकता है।
कुछ कॉन्फ़िगरेशन में, यह भेद्यता अधिक गंभीर परिणाम दे सकती है। यह प्रोजेक्ट जानबूझकर एक पृथक Docker वातावरण में नियंत्रित फ़ाइल प्रकटीकरण का प्रदर्शन करता है।
परीक्षण के दौरान एकत्रित स्क्रीनशॉट इसमें संग्रहीत हैं:
evidence/
साक्ष्य में शामिल हैं:
प्राथमिक शमन Apache HTTP Server को एक सुधारित (fixed) संस्करण में अपग्रेड करना है।
अतिरिक्त सुरक्षात्मक उपायों में शामिल हैं:
Apache HTTP Server सुरक्षा सलाह: https://httpd.apache.org/security/vulnerabilities_24.html
NIST राष्ट्रीय भेद्यता डेटाबेस: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
CERT-EU सुरक्षा सलाह: https://cert.europa.eu/publications/security-advisories/2021-054/
यह प्रोजेक्ट केवल अधिकृत सुरक्षा शिक्षा और नियंत्रित प्रयोगशाला परीक्षण के लिए है।
Docker वातावरण और PoC स्थानीय परीक्षण के लिए डिज़ाइन किए गए हैं। PoC का उपयोग उन प्रणालियों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके मूल्यांकन की स्पष्ट अनुमति आपके पास नहीं है।