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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2024-4577-lab — # Docker-आधारित CTF लैब जो CVE-2024-4577 PHP-CGI आर्गुमेंट इंजेक्शन को प्रदर्शित करता है, जिससे RCE होता है। इसमें कमजोर PHP 5.4.1 CGI, एक्सप्लॉइट स्क्रिप्ट्स और फ्लैग प्राप्ति शामिल है। | Kitploit
उपकरण/GitHubGitHub/khwajasaad267-coder/cve-2024-4577-lab
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubkhwajasaad267-coder/cve-2024-4577-lab

cve-2024-4577-lab

# Docker-आधारित CTF लैब जो CVE-2024-4577 PHP-CGI आर्गुमेंट इंजेक्शन को प्रदर्शित करता है, जिससे RCE होता है। इसमें कमजोर PHP 5.4.1 CGI, एक्सप्लॉइट स्क्रिप्ट्स और फ्लैग प्राप्ति शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2024-4577 — PHP-CGI तर्क इंजेक्शन → RCE (Docker Lab / CTF)

एक स्व-निहित, शुरू से बनाया गया Docker lab जो CVE-2024-4577 के पीछे के वास्तविक तर्क-इंजेक्शन → रिमोट कोड निष्पादन प्राइमिटिव को प्रदर्शित करता है। इसे http://localhost:8080 पर एक्सप्लॉइट करें, शेल प्राप्त करें, और कंटेनर के अंदर से फ्लैग पढ़ें।

यह एक वास्तविक कमजोरी है, सिम्युलेटेड नहीं। कंटेनर एक अनपैच्ड PHP 5.4.1 CGI बाइनरी को कंपाइल करता है और इसे Apache के पीछे ठीक उसी तरह वायर करता है जैसे वास्तविक कमजोर होस्ट कॉन्फ़िगर किए जाते हैं। कहीं भी कोई नकली "if password == flag" चेक नहीं है — फ्लैग पाने का एकमात्र तरीका वास्तव में कोड निष्पादन प्राप्त करना है।


⚠️ पहले यह पढ़ें — Linux बनाम Windows (महत्वपूर्ण और ईमानदार)

CVE-2024-4577 का सिग्नेचर पेलोड %AD (एक सॉफ्ट हाइफ़न) का उपयोग करता है। यह ट्रिक केवल Windows पर काम करती है, क्योंकि Windows की "बेस्ट-फिट" कैरेक्टर एन्कोडिंग बाइट 0xAD को वास्तविक - (0x2D) में बदल देती है PHP के CVE-2012-1823 पैच द्वारा क्वेरी स्ट्रिंग की जाँच करने के बाद। यह एन्कोडिंग रूपांतरण Windows द्वारा ही किया जाता है — यह सामान्य Linux Docker कंटेनर के अंदर नहीं होता।

इसलिए, एक वफादार, आपकी मशीन पर चलने योग्य Linux lab ठीक वही RCE प्राइमिटिव पुनरुत्पादित करता है — URL के माध्यम से php-cgi विकल्प इंजेक्शन → -d auto_prepend_file=php://input → कोड निष्पादन — शाब्दिक - फॉर्म का उपयोग करके (जो CVE-2024-4577 का मूल बग, CVE-2012-1823 है)। वास्तविक Windows CVE-2024-4577 लक्ष्य से एकमात्र अंतर %AD→- एन्कोडिंग-बायपास परत है, जिसे यह README पूर्ण रूप से दस्तावेज़ित करता है (देखें यह कैसे काम करता है और poc.http)।

यह Linux labवास्तविक CVE-2024-4577 (Windows)
कमजोर घटकphp-cgiphp-cgi
RCE प्राइमिटिव-d auto_prepend_file=php://inputसमान
URL में डिलीमीटरशाब्दिक -%AD (बेस्ट-फिट → -)
2012 पैच को बायपास करता है?N/A (PHP पैच से पहले का है)हाँ, Windows बेस्ट-फिट के माध्यम से
Win 11 Home + Docker Desktop पर चलता है✅❌ (Windows कंटेनर चाहिए)

यदि आपको विशेष रूप से बिट-दर-बिट Windows %AD पुनरुत्पादन की आवश्यकता है, तो आपको Windows-कंटेनर-सक्षम Docker होस्ट (Windows Server / Win Pro + Hyper-V) चाहिए — यह Windows 11 Home पर नहीं चलेगा। Windows पेलोड संदर्भ के लिए poc.http में शामिल है।


1. CVE विवरण

CVE-2024-4577 — PHP CGI तर्क इंजेक्शन जो रिमोट कोड निष्पादन की ओर ले जाता है। DEVCORE (Orange Tsai / Angelboy) द्वारा खोजा गया, 2024-06-06 को प्रकट किया गया।

जब PHP को CGI मोड में (या php-cgi.exe बाइनरी अन्यथा पहुंच योग्य हो) Windows पर कुछ सिस्टम लोकेल (पारंपरिक/सरलीकृत चीनी, जापानी, और अन्य) के साथ तैनात किया जाता है, तो वेब सर्वर HTTP क्वेरी स्ट्रिंग को php-cgi को कमांड-लाइन तर्क के रूप में पास करता है। एक हमलावर php-cgi कमांड-लाइन विकल्पों (-d ...) को उस क्वेरी स्ट्रिंग में तस्करी कर सकता है। Windows की बेस्ट-फिट कोडपेज रूपांतरण सॉफ्ट-हाइफ़न बाइट 0xAD (%AD) को ASCII हाइफ़न - में बदल देती है, जो CVE-2012-1823 हार्डनिंग से फिसल जाता है और हमलावर को मनमाने PHP INI निर्देश सेट करने देता है — सबसे उपयोगी रूप से auto_prepend_file=php://input के साथ allow_url_include=1, जो हमलावर द्वारा आपूर्ति किए गए अनुरोध बॉडी को PHP के रूप में निष्पादित करता है। परिणाम: अप्रमाणित रिमोट कोड निष्पादन। इसे दिनों के भीतर जंगली में हथियार बना दिया गया (जैसे TellYouThePass रैंसमवेयर)।

2. मूल कारण

  1. CGI क्वेरी स्ट्रिंग को argv के रूप में पास करता है। RFC 3875 के अनुसार, यदि CGI अनुरोध की क्वेरी स्ट्रिंग में कोई अनएन्कोडेड = नहीं है, तो सर्वर इसे + पर विभाजित करता है, प्रत्येक शब्द को URL-डिकोड करता है, और शब्दों को CGI प्रोग्राम को कमांड-लाइन तर्क के रूप में पास करता है। इसलिए php-cgi हमलावर-नियंत्रित argv प्राप्त करता है।

  2. php-cgi उन argv को विकल्पों के रूप में पार्स करता है। ऐतिहासिक रूप से php-cgi उस argv से -d key=value, -T, आदि की व्याख्या करेगा। -d allow_url_include=1 -d auto_prepend_file=php://input फीड करने से PHP अनुरोध बॉडी को कोड के रूप में निष्पादित करता है → CVE-2012-1823।

  3. CVE-2012-1823 फिक्स Windows पर अधूरा है। 2012 पैच ने sapi/cgi/cgi_main.c में एक गार्ड जोड़ा: मोटे तौर पर "यदि (कच्ची) क्वेरी स्ट्रिंग - से शुरू होती है और इसमें कोई = नहीं है, तो विकल्प पार्सिंग छोड़ें (skip_getopt)।" शाब्दिक - भेजने वाला हमलावर अब अवरुद्ध है।

  4. बेस्ट-फिट एन्कोडिंग गार्ड को हरा देती है (2024 बग)। Windows पर, PHP कमांड लाइन को लोकेल कोडपेज का उपयोग करके बेस्ट-फिट मैपिंग सक्षम के साथ परिवर्तित करता है। हमलावर %AD (बाइट 0xAD, सॉफ्ट हाइफ़न) भेजता है। गार्ड की जाँच के समय पहला बाइट 0xAD है, - नहीं, इसलिए skip_getopt सेट नहीं होता। बाद में, जब PHP वास्तव में argv बनाता है, Windows बेस्ट-फिट-मैप 0xAD → - करता है, इसलिए getopt अब -d देखता है। विकल्प इंजेक्शन उस जाँच के बाद फायर होता है जिसे इसे रोकना था। वह चेक-फिर-कन्वर्ट क्रम पूरी कमजोरी है।

इस Linux lab में, चरण 1–2 को एक php-cgi के साथ ठीक से पुनरुत्पादित किया गया है जो चरण 3 के पैच से पहले का है, इसलिए शाब्दिक - फॉर्म काम करता है और समान RCE प्रदर्शित करता है। चरण 4 केवल Windows-विशिष्ट परत है, दस्तावेज़ित लेकिन निष्पादित नहीं (Linux में कोई बेस्ट-फिट रूपांतरण नहीं है)।

3. प्रभावित संस्करण (वास्तविक CVE-2024-4577)

8.3.8, 8.2.20, 8.1.29 में फिक्स किया गया। इसलिए कमजोर:

  • PHP 8.3.0 – 8.3.7
  • PHP 8.2.0 – 8.2.19
  • PHP 8.1.0 – 8.1.28
  • PHP 8.0.x, 7.x, 5.x — जीवन-अंत, अनपैच्ड, प्रभावित भी

शर्तें: Windows OS; PHP CGI के रूप में चल रहा है या php-cgi.exe उजागर है (डिफ़ॉल्ट XAMPP on Windows कॉन्फ़िगरेशन कमजोर है); बेस्ट-फिट पथ के लिए एक प्रभावित लोकेल। (मूल बग CVE-2012-1823 — वह प्राइमिटिव जो यह lab चलाता है — किसी भी OS को प्रभावित करता है जो इस कॉन्फ़िगरेशन में पूर्व-2012-फिक्स php-cgi चला रहा है।)

4. प्रोजेक्ट लेआउट```

cve-2024-4577-lab/ ├── Dockerfile # builds the lab: compiles unpatched PHP 5.4.1 CGI + Apache ├── Dockerfile.vulhub # fallback: prebuilt vulnerable base image (if compile fails) ├── docker-compose.yml # one-command build+run, maps localhost:8080 -> 80 ├── start.sh # container entrypoint (Apache foreground) ├── exploit.sh # one-shot RCE PoC (bash + curl) ├── poc.http # raw HTTP requests (Linux payload + real Windows %AD payload) ├── app/ │ └── index.php # ordinary web page (NOT itself vulnerable) ├── config/ │ ├── apache-vhost.conf # the vulnerable Apache <-> php-cgi wiring │ └── php.ini # minimal php.ini (cgi.force_redirect=0, etc.) ├── flag.txt # the flag (copied to /flag.txt in the container) └── README.md # this file

## 5. पूर्वापेक्षाएँ

- **Docker Desktop** (Windows/macOS) या Docker Engine (Linux)।
  Windows 11 Home: **WSL 2** बैकएंड (डिफ़ॉल्ट) के साथ Docker Desktop इंस्टॉल करें।
  → https://www.docker.com/products/docker-desktop/
- शोषण के लिए `curl` (`curl.exe` Windows 10/11 में अंतर्निहित है; यह
  Git Bash / WSL / macOS / Linux में भी उपलब्ध है)।
- **बिल्ड के दौरान** इंटरनेट एक्सेस (PHP 5.4.1 स्रोत डाउनलोड करता है)।

## 6. बिल्ड निर्देश

`cve-2024-4577-lab/` फ़ोल्डर में एक टर्मिनल खोलें।

### विकल्प A — docker compose (अनुशंसित)```bash
docker compose up --build -d

विकल्प B — सादा डॉकर

docker build कमांड:```bash docker build -t cve-2024-4577-lab .

**docker run कमांड:**```bash
docker run --rm -d -p 8080:80 --name cve-2024-4577-lab cve-2024-4577-lab

बिल्ड PHP को स्रोत से संकलित करता है (पहली बार में ~2–5 मिनट)। यदि यह आपकी मशीन पर विफल हो जाता है (ऑफ़लाइन, कोई टूलचेन नहीं, museum.php.net ब्लॉक है), तो फ़ॉलबैक बेस इमेज का उपयोग करें:

docker build -f Dockerfile.vulhub -t cve-2024-4577-lab .
docker run --rm -d -p 8080:80 --name cve-2024-4577-lab cve-2024-4577-lab
टूल डाउनलोड करें