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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-22965 — CVE-2022-22965 (Spring4Shell) का गहन तकनीकी विश्लेषण, पर्यावरण सेटअप, डीबग वॉकथ्रू, और शैक्षिक प्रयोगशाला अभ्यास के लिए एक्सप्लॉइट श्रृंखला विवरण के साथ। | Kitploit
उपकरण/GitHubGitHub/khidottrivi/cve-2022-22965
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षालैब और अभ्यास
GitHubkhidottrivi/cve-2022-22965

CVE-2022-22965

CVE-2022-22965 (Spring4Shell) का गहन तकनीकी विश्लेषण, पर्यावरण सेटअप, डीबग वॉकथ्रू, और शैक्षिक प्रयोगशाला अभ्यास के लिए एक्सप्लॉइट श्रृंखला विवरण के साथ।

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

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

सभी देखें →

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

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

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

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

CVE 2022-22965_Spring4Shell का विश्लेषण

दोष विवरण

Spring4Shell Spring Framework के Spring Core पर मौजूद एक CVE का नाम है।

CVSS 3.x स्कोर 9.8 के साथ, इस दोष को उच्चतम जोखिम स्तर (critical) में वर्गीकृत किया गया है। यह दोष हमलावर को दूरस्थ कोड निष्पादन करने और दोष युक्त सर्वर को नियंत्रित करने की अनुमति देता है।

इंटरनेट पर Spring Core की लोकप्रियता और Spring4Shell के गंभीर प्रभाव को देखते हुए, विशेषज्ञों का मानना है कि इस दोष का प्रभाव Log4shell से कम नहीं है।

प्रभावित क्षेत्र

Spring4Shell इंटरनेट पर Spring Framework का उपयोग करने वाले सभी वेब अनुप्रयोगों को प्रभावित नहीं करता है, बल्कि इसके लिए वेब एप्लिकेशन में निम्नलिखित तत्वों का होना आवश्यक है:

  • एप्लिकेशन Spring Framework संस्करण < 5.2, 5.2.0 – 5.2.19 या 5.3.0 - 5.3.17 का उपयोग करता है
  • एप्लिकेशन Spring-webmvc या Spring-webflux में से किसी एक निर्भरता का उपयोग करता है
  • एप्लिकेशन jdk संस्करण >= 9 के साथ Java का उपयोग करता है
  • एप्लिकेशन पारंपरिक Java वेब आर्काइव ( .war फ़ाइल) के रूप में पैकेज किया गया है और Tomcat में डिप्लॉय किया गया है (Springboot द्वारा चलाए जाने वाले अनुप्रयोगों पर दोष मौजूद नहीं पाया गया है)

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

मेरे द्वारा सेटअप किए गए वातावरण के पैरामीटर इस प्रकार हैं:

  • Spring Framework 5.1.0
  • Spring-webmvc निर्भरता 5.1.0
  • JDK 11.0.13 (मैं Kali 2021.4a वर्चुअल मशीन का उपयोग कर रहा हूँ और यह Java संस्करण पहले से स्थापित है)
  • Apache Tomcat 9.0.45

दोष युक्त वातावरण, प्रोजेक्ट बनाना और Intellij के साथ डीबग सेटअप करना

  1. Apache Tomcat स्थापित करें

    जैसा ऊपर बताया गया है, मैं Kali 2021.4a और Apache Tomcat 9.0.45 का उपयोग कर रहा हूँ। यदि आप Apache Tomcat स्थापित करना नहीं जानते हैं और Kali Linux पर स्थापित करना चाहते हैं, तो आप इस लिंक का संदर्भ ले सकते हैं।

    नोट: लिंक https://mirror.kiu.ac.ug/apache/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz को https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz से बदलें

  2. IDE चुनें

    हमें प्रोजेक्ट को कोड करने, .war फ़ाइल के रूप में पैकेज करने और एक अत्यंत महत्वपूर्ण कार्य डीबग करने के लिए एक IDE की आवश्यकता है। मैं Intellij का उपयोग कर रहा हूँ, आप Eclipse या Netbeans आदि का उपयोग कर सकते हैं। बशर्ते वह IDE Java का समर्थन करता हो।

  3. एक सरल दोष युक्त प्रोजेक्ट बनाएं

    मेरा प्रोजेक्ट बहुत सरल है, इसमें शामिल हैं:

    • एक मॉडल HelloWorld.java

      Untitled

    • एक नियंत्रक HelloWorldController.java

      Untitled

    • एक व्यू hello.jsp

      Untitled

  4. .war फ़ाइल बनाएँ

    प्रोजेक्ट को पैकेज करने के लिए, इस प्रकार करें: Build -> Build Artifacts -> helloworld:war -> Build.

    बिल्ड सफलतापूर्वक पूर्ण होने तक प्रतीक्षा करें, इस समय प्रोजेक्ट में एक नया फ़ोल्डर out दिखाई देगा, आप ./out/artifacts/your_war_name/ में जाएँ और एक फ़ाइल your_war_name.war देखेंगे, यह .war फ़ाइल संकलित और पैक किया गया वेब प्रोजेक्ट है, इस फ़ाइल का उपयोग Apache Tomcat जैसे Java Servlet पर डिप्लॉय करने के लिए किया जा सकता है।

    यदि Build Artifacts धुंधला है (Build Artifacts नहीं किया जा सकता) तो इस प्रोजेक्ट के लिए Build Artifacts सेटअप नहीं किया गया है, इस पर जाएँ: File -> Project Structure -> Artifacts -> सभी मौजूदा आर्टिफैक्ट्स हटाएँ -> Add (+) -> Web Application: Exploded -> From Modules... -> OK (Exploded बनाना समाप्त करें) > Add (+) -> Web Application: Archive -> For 'helloworld:war exploded' -> OK। फिर Build Artifacts को पुनः निष्पादित करें।

  5. डिप्लॉय और डीबग सेटअप

    • डिप्लॉय

      Apache Tomcat पर .war फ़ाइल डिप्लॉय करने के लिए, बस .war फ़ाइल को Apache Tomcat निर्देशिका के अंदर /webapps फ़ोल्डर में कॉपी करें (उदाहरण: मेरे लिए, मैं helloworld.war फ़ाइल (आसानी से कॉल करने के लिए नाम बदल दिया) को /opt/tomcat/apache-tomcat-9.0.45/webapps/ फ़ोल्डर में कॉपी करूँगा)। फिर, Tomcat सर्वर को 2 तरीकों से प्रारंभ करें (Linux के लिए):

      • /opt/tomcat/apache-tomcat-9.0.45/bin/catalina.sh start (एप्लिकेशन इस कमांड को निष्पादित करने वाले उपयोगकर्ता के अधिकारों के साथ चलेगा, मेरे मामले में root@@)
      • sudo service tomcat start (एप्लिकेशन आमतौर पर tomcat उपयोगकर्ता के अधिकारों के साथ चलेगा, यह Apache Tomcat स्थापित करते समय आपके द्वारा कॉन्फ़िगर की गई सेवा पर निर्भर करता है)

      डिप्लॉय करने के बाद, http://localhost:8080/helloworld पर जाएँ

    • डीबग सेटअप

      Tomcat को डीबग (रिमोट) सेटअप करने के लिए, निम्नानुसार करें:

      1. सर्वर पक्ष:

        • catalina.sh फ़ाइल खोलें और JPDA_ADDRESS पैरामीटर के मान को localhost से वर्चुअल मशीन के IP में बदलें

          Untitled

        • Tomcat सर्वर को /opt/tomcat/apache-tomcat-9.0.45/bin/catalina.sh jpda start का उपयोग करके पुनरारंभ करें। इस समय, HTTP सर्वर के लिए पोर्ट 8080 खोलने के अलावा, Tomcat हमें कनेक्ट करने और डीबग करने के लिए एक अतिरिक्त पोर्ट 8000 खोलेगा

        नोट: इस डीबग भाग में, मैं Windows 10 पर Intellij चला रहा हूँ और Kali वर्चुअल मशीन पर Tomcat चला रहा हूँ, इसलिए JPDA_ADDRESS बदलने की आवश्यकता है। यदि आप एक ही मशीन पर Intellij और Windows 10 दोनों सेटअप करते हैं तो बदलने की आवश्यकता नहीं है।

      2. Intellij पक्ष:

        • Run -> Edit Configurations... पर जाएँ -> Add (+) -> Remote JVM Debug

        • नाम दें -> Host और Port को उस IP और पोर्ट में बदलें जो आपने catalina.sh फ़ाइल में बदला था -> OK -> Shift + F9 (डीबग प्रारंभ करें)

          Untitled

विस्तृत विश्लेषण

पहले, मैं डीबग करने के लिए अपने द्वारा उपयोग किए जा रहे प्रोजेक्ट का विश्लेषण करूँगा, जैसा ऊपर बताया गया है, यह प्रोजेक्ट बस सरल है:

  • एक मॉडल HelloWorld.java, जिसमें HelloWorld ऑब्जेक्ट के दो गुण हैं: message (स्ट्रिंग), person (स्ट्रिंग) और सेटर/गेटर फ़ंक्शन (इस सरल संरचना के कारण, इस ऑब्जेक्ट को Plain Old Java Object - POJO कहा जाता है)। प्रोजेक्ट में एक POJO क्लास का होना आवश्यक है - यह Spring4Shell दोष का शोषण करने के लिए आवश्यक शर्त है।
  • एक नियंत्रक HelloWorldController.java, इस क्लास में एक helloPost फ़ंक्शन है जिसका इनपुट पैरामीटर helloWorld (HelloWorld) ऑब्जेक्ट और model (Model) है। helloPost फ़ंक्शन helloWorld के गुणों (person और message) के मानों से model ऑब्जेक्ट के लिए addAttribute करता है - Spring4Shell दोष का शोषण करने के लिए दूसरी शर्त यह है कि एक नियंत्रक होना चाहिए जो इनपुट के रूप में POJO ऑब्जेक्ट लेता है।
  • एक व्यू hello.jsp, इस hello.jsp फ़ाइल में model (HelloWorldController.java नियंत्रक से भेजे गए) में विशेषताओं को कॉल किया जाता है और उपयोगकर्ता को प्रदर्शित किया जाता है।

मेरे पास एक उदाहरण है:

Untitled

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