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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/danielegiovanardi2408/cve-2024-36401-geoserver-rce
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubdanielegiovanardi2408/cve-2024-36401-geoserver-rce

cve-2024-36401-geoserver-rce

CVE-2024-36401 का प्रतिलिपि योग्य अध्ययन: JXPath eval इंजेक्शन के माध्यम से GeoServer में अप्रमाणित RCE। इसमें तकनीकी रिपोर्ट, कार्यशील शोषण/सत्यापक, और कमजोर बनाम पैच किए गए इंस्टेंस पर दोष प्रदर्शित करने वाला Docker वातावरण शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2024-36401 — GeoServer में अप्रमाणित RCE

CVE CVSS CISA KEV Type License

CVE-2024-36401 का एक पूर्ण, पुनरुत्पादक अध्ययन, जो GeoServer में एक अप्रमाणित रिमोट कोड निष्पादन दोष है — भू-स्थानिक डेटा के लिए सबसे व्यापक रूप से उपयोग किया जाने वाला ओपन-सोर्स सर्वर। यह बग एक eval इंजेक्शन है: OGC मानकों के पैरामीटर के माध्यम से, GeoServer हमलावर-नियंत्रित प्रॉपर्टी नाम GeoTools को सौंपता है, जहाँ Apache Commons JXPath उन्हें XPath एक्सप्रेशन के रूप में मूल्यांकित करता है और, डिज़ाइन के अनुसार, रिफ्लेक्शन के माध्यम से मनमानी Java विधियों को कॉल कर सकता है। इसलिए exec(java.lang.Runtime.getRuntime(),'id') जैसा एक अप्रमाणित अनुरोध होस्ट पर कमांड चलाता है।

इस रिपॉजिटरी में तकनीकी रिपोर्ट, एक कार्यशील शोषण/सत्यापनकर्ता, और एक एक-कमांड Docker वातावरण है जो कमजोर इंस्टेंस पर RCE प्रदर्शित करता है और पैच किए गए इंस्टेंस पर उसी शोषण के विफल होने को दिखाता है।

शैक्षिक परियोजना। एक विश्वविद्यालय पाठ्यक्रम (डेटा गोपनीयता और सुरक्षा, LUISS DASMA) के लिए बनाया गया। सब कुछ केवल स्थानीय, पृथक कंटेनरों के विरुद्ध चलता है — देखें।

जिम्मेदार उपयोग

एक नज़र में

क्षेत्रमान
CVE (GeoServer)CVE-2024-36401
मूल कारण (GeoTools)CVE-2024-36404
प्रकारअप्रमाणित रिमोट कोड निष्पादन
CWECWE-95, Eval Injection
CVSS v3.19.8 गंभीर (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
प्रभावितGeoServer < 2.25.2 / GeoTools < 31.2 (और पुरानी शाखाएँ)
CISA KEVहाँ (15 जुलाई 2024)
अध्ययन किए गए संस्करणकमजोर 2.25.1, पैच किया गया 2.25.2

रिपॉजिटरी संरचना

root@kitploit:~
.
├── report/
│   ├── report.pdf            # the full technical report (read this first)
│   ├── report.md             # report source (Pandoc/XeLaTeX)
│   └── images/               # figures and screenshots
├── docker/
│   ├── vulnerable/Dockerfile # GeoServer 2.25.1 (vulnerable)
│   └── patched/Dockerfile    # GeoServer 2.25.2 (fixed)
├── docker-compose.yml        # vuln on :8080, patched on :8081
├── exploit/
│   ├── exploit.py            # exploit + vuln/patched verifier (stdlib only)
│   ├── exploit.sh            # curl-based PoC (GET + POST variants)
│   ├── payloads.md           # payload catalogue per OGC endpoint
│   └── output/               # captured proof logs and transcripts
└── run-reproduction.sh       # one command: build + exploit both + collect proofs

त्वरित आरंभ

आवश्यकताएँ: Docker Desktop चल रहा हो, python3, curl।

root@kitploit:~
# Build both containers, run the exploit against each, and collect the proofs
chmod +x run-reproduction.sh
./run-reproduction.sh

या चरण दर चरण:

root@kitploit:~
docker compose up -d --build       # vuln on :8080, patched on :8081

# Vulnerable (expected: VULNERABLE, ~8s delay)
python3 exploit/exploit.py -t http://localhost:8080/geoserver --label vuln -o exploit/output

# Patched (expected: PATCHED, immediate rejection)
python3 exploit/exploit.py -t http://localhost:8081/geoserver --label patched -o exploit/output

docker compose down                # when finished

शोषण कैसे काम करता है

दो स्वतंत्र जांच परिणाम को स्पष्ट बनाती हैं:

  • ब्लाइंड (समय-आधारित): java.lang.Thread.sleep(8000) XPath का मूल्यांकन करने वाले थ्रेड को ब्लॉक करता है, इसलिए HTTP प्रतिक्रिया में ~8 सेकंड की देरी होती है — क्लाइंट से मापने योग्य, कंटेनर तक पहुंच की आवश्यकता नहीं। यह वही कैनरी है जिसका उपयोग आधिकारिक फिक्स परीक्षणों में किया जाता है।
  • फ़ाइल (कमांड निष्पादन): exec(java.lang.Runtime.getRuntime(),'touch /tmp/<marker>') कंटेनर के अंदर एक फ़ाइल बनाता है, जिसे docker exec से सत्यापित किया जा सकता है।

कमजोर इंस्टेंस पर, पेलोड को हाथ से भेजने पर ProcessImpl पर ClassCastException वापस आता है — JVM ने Runtime.exec चलाया और फिर परिणामी Process ऑब्जेक्ट को एक एट्रिब्यूट के रूप में उपयोग करने में विफल रहा। वह अपवाद ही निष्पादन का प्रमाण है:

कमजोर इंस्टेंस पर exec पेलोड के साथ WFS GetPropertyValue एक ClassCastException लौटा रहा है

समाधान

GeoTools कमिट e53e5170 (GeoServer 2.25.2, 2.24.4, 2.23.6, 2.22.6 में) बग के दोनों हिस्सों पर गहन सुरक्षा लागू करता है:

  • सिंक: एक JXPathUtils.newSafeContext(...) हेल्पर एक खाली FunctionLibrary स्थापित करता है, जिससे JXPath अब exec/Thread.sleep को फ़ंक्शन के रूप में हल नहीं कर सकता — स्ट्रिंग एक सादा प्रॉपर्टी नाम बनी रहती है।
  • स्कोप: FeaturePropertyAccessorFactory अब SimpleFeatureType की भी जाँच करता है, ताकि सरल फीचर अब कमजोर एक्सेसर तक न पहुँचें।

पैच किए गए इंस्टेंस पर वही पेलोड No such attribute: ... लौटाता है और कुछ नहीं चलता। पूर्ण विवरण — प्रभावित कोड फ़ाइल/लाइन संदर्भों के साथ, शोषण, शमन अंतर, और साथ-साथ पुनरुत्पादन — report/report.pdf में हैं।

जिम्मेदार उपयोग

यह CVE सार्वजनिक है, 18 महीने से अधिक समय से पैच किया गया है, CISA ज्ञात शोषित कमजोरियों की सूची में है, और इसमें सार्वजनिक PoCs (Vulhub, Nuclei, Metasploit) हैं। यहाँ कोड केवल localhost और इस रिपॉजिटरी में पृथक अध्ययन कंटेनरों को लक्षित करता है। इसका उपयोग उन प्रणालियों के विरुद्ध न करें जिनके आप मालिक नहीं हैं या जिनका परीक्षण करने के लिए आप स्पष्ट रूप से अधिकृत नहीं हैं।

लाइसेंस

MIT © 2026 Daniele Giovanardi

लेखक

Daniele Giovanardi — डेटा साइंस और प्रबंधन (DASMA), LUISS Guido Carli। डेटा गोपनीयता और सुरक्षा के लिए पाठ्यक्रम कार्य।

टूल डाउनलोड करें