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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
spring4shell-local-verification-lab — Spring Framework CVE-2022-22965 स्थानीय प्रभाव स्थिति सत्यापन, संस्करण उन्नयन सुधार और पुनः परीक्षण परियोजना | Kitploit
उपकरण/GitHubGitHub/meng-security/spring4shell-local-verification-lab
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHubmeng-security/spring4shell-local-verification-lab

spring4shell-local-verification-lab

Spring Framework CVE-2022-22965 स्थानीय प्रभाव स्थिति सत्यापन, संस्करण उन्नयन सुधार और पुनः परीक्षण परियोजना

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

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

सभी देखें →

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

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

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

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

Spring4Shell स्थानीय प्रभाव स्थितियाँ सत्यापन, समाधान और पुनः परीक्षण परियोजना

परियोजना परिचय

यह परियोजना Spring Framework CVE-2022-22965, जिसे Spring4Shell के नाम से भी जाना जाता है, के प्रभाव की स्थितियों, जोखिम प्रकटीकरण, समाधान विधियों और समाधान के बाद पुनः परीक्षण प्रक्रिया को सीखने और सत्यापित करने के लिए है।

परियोजना व्यक्तिगत रूप से स्थापित स्थानीय अधिकृत वातावरण में पूरी की गई है। परियोजना का मुख्य बिंदु वास्तविक लक्ष्यों पर हमला करना नहीं है, बल्कि समाधान से पहले और समाधान के बाद Spring MVC परीक्षण वातावरण स्थापित करके, भेद्यता से संबंधित प्रभाव स्थितियों की एक-एक करके पुष्टि करना है, और सुरक्षित, नियंत्रित केवल-पढ़ने के तरीके से Spring डेटा बाइंडिंग के आंतरिक गुण पथों में संस्करण उन्नयन से पहले और बाद के अंतरों का निरीक्षण करना है।

इस परियोजना ने निम्नलिखित प्रक्रियाएँ पूरी की हैं:

  • JDK, Maven और Apache Tomcat वातावरण तैयार करना
  • Spring MVC WAR परियोजना स्थापित करना
  • सामान्य कार्यक्षमता आधारभूत सत्यापन
  • भेद्यता प्रभाव स्थितियों की पुष्टि
  • आंतरिक गुण पथ केवल-पढ़ने का निदान
  • भेद्यता कारण विश्लेषण
  • Spring Framework संस्करण उन्नयन
  • समाधान के बाद सुरक्षा पुनः परीक्षण
  • समाधान के बाद सामान्य कार्यक्षमता पुनः परीक्षण
  • परीक्षण रिपोर्ट और स्क्रीनशॉट साक्ष्य संकलन

सुरक्षा घोषणा

यह परियोजना केवल व्यक्तिगत स्थानीय स्व-निर्मित वातावरण या स्पष्ट रूप से अधिकृत सुरक्षा परीक्षण वातावरण के लिए है।

परियोजना किसी भी सार्वजनिक वेबसाइट, सर्वर या तृतीय-पक्ष व्यावसायिक प्रणाली को स्कैन, पता लगाने या शोषण के लिए लक्षित नहीं करती है, और इसमें वास्तविक उपयोगकर्ता डेटा या वास्तविक व्यावसायिक डेटा शामिल नहीं है।

परीक्षण प्रक्रिया के दौरान निम्नलिखित कार्य नहीं किए गए:

  • WebShell नहीं लिखा गया
  • सिस्टम कमांड निष्पादित नहीं किया गया
  • Tomcat कॉन्फ़िगरेशन संशोधित नहीं किया गया
  • रिवर्स शेल स्थापित नहीं किया गया
  • स्थायी नियंत्रण स्थापित नहीं किया गया
  • किसी बाहरी सिस्टम पर कोई प्रभाव नहीं डाला गया

इस परियोजना में परीक्षण विधियों का उपयोग किसी भी अनधिकृत लक्ष्य के लिए निषिद्ध है।

भेद्यता पृष्ठभूमि

CVE-2022-22965 को आमतौर पर Spring4Shell के रूप में जाना जाता है, यह Spring Framework में अनुरोध पैरामीटर डेटा बाइंडिंग तंत्र से संबंधित एक रिमोट कोड निष्पादन भेद्यता है।

Spring MVC HTTP अनुरोध पैरामीटर को Java ऑब्जेक्ट गुणों में स्वचालित रूप से बाइंड करने का समर्थन करता है। उदाहरण के लिए, यह परियोजना निम्नलिखित तरीके से नाम और ईमेल पैरामीटर प्राप्त करती है:

@ModelAttribute("profile") UserProfile profile

सामान्य रूप से, अनुरोध पैरामीटर name और email गुण नामों के अनुसार UserProfile ऑब्जेक्ट में बाइंड हो जाएंगे।

प्रभावित संस्करणों में, कुछ आंतरिक गुण पथों तक पहुँच पर प्रतिबंध पर्याप्त रूप से सख्त नहीं हैं। JDK 9 या उच्चतर संस्करण का उपयोग करते समय, और विशिष्ट Servlet कंटेनर, तैनाती विधि और डेटा बाइंडिंग स्थितियों को पूरा करने पर, बाहरी अनुरोध पैरामीटर सामान्य व्यावसायिक ऑब्जेक्ट से Java Class, मॉड्यूल, क्लास लोडर या कंटेनर से संबंधित आंतरिक ऑब्जेक्ट्स तक पहुँच सकते हैं।

विशिष्ट शोषण-योग्य वातावरण में, हमलावर आगे सर्वर कॉन्फ़िगरेशन को संशोधित कर सकता है या सर्वर फ़ाइलें लिख सकता है, जिससे रिमोट कोड निष्पादन का जोखिम पैदा होता है।

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

class.module.name

परियोजना उद्देश्य

  1. Spring MVC अनुरोध पैरामीटर डेटा बाइंडिंग की मूल प्रक्रिया को समझना।
  2. स्थानीय Spring MVC WAR परीक्षण परियोजना स्थापित करना।
  3. सामान्य व्यावसायिक कार्यक्षमता आधारभूत सत्यापन पूरा करना।
  4. Spring Framework, JDK, Tomcat, WAR तैनाती और डेटा बाइंडिंग प्रवेश जैसी प्रभाव स्थितियों की पुष्टि करना।
  5. केवल-पढ़ने के तरीके से आंतरिक गुण पथों तक पहुँच के प्रदर्शन का निरीक्षण करना।
  6. भेद्यता के मुख्य कारण का विश्लेषण करना।
  7. Spring Framework को समाधान संस्करण में उन्नयन करना।
  8. समान विधि का उपयोग करके समाधान के बाद पुनः परीक्षण पूरा करना।
  9. पुष्टि करना कि संस्करण उन्नयन ने सामान्य व्यावसायिक कार्यक्षमता को प्रभावित नहीं किया है।
  10. परियोजना स्रोत कोड, परीक्षण रिपोर्ट और स्क्रीनशॉट साक्ष्य संकलित करना।

प्रयोगात्मक वातावरण

यह परियोजना व्यक्तिगत स्थानीय VMware पृथक प्रयोगात्मक वातावरण में पूरी की गई है।

  • होस्ट मशीन: Windows 11
  • लक्ष्य मशीन: Windows 10 वर्चुअल मशीन
  • वर्चुअलाइजेशन सॉफ्टवेयर: VMware Workstation
  • Java वातावरण: Eclipse Temurin JDK 11.0.31
  • परियोजना निर्माण उपकरण: Apache Maven 3.9.16
  • Servlet कंटेनर: Apache Tomcat 9.0.60
  • समाधान से पहले Spring Framework संस्करण: 5.3.17
  • समाधान के बाद Spring Framework संस्करण: 5.3.18
  • Web फ्रेमवर्क: Spring MVC
  • परियोजना तैनाती विधि: पारंपरिक WAR पैकेज तैनाती
  • परीक्षण पता: 127.0.0.1

सामान्य कार्यक्षमता परीक्षण डेटा:

  • नाम: Alice
  • ईमेल: [email protected]

सुरक्षा निदान गुण पथ:

class.module.name

परियोजना संरचना

spring4shell-local-verification-lab/

  • README.md: परियोजना परिचय, परीक्षण विचार, सत्यापन परिणाम और समाधान स्पष्टीकरण
  • docs/: Spring4Shell स्थानीय प्रभाव स्थितियाँ सत्यापन, समाधान और पुनः परीक्षण रिपोर्ट
  • images/: परियोजना वातावरण, परीक्षण प्रक्रिया और पुनः परीक्षण स्क्रीनशॉट
  • vulnerable-demo/: Spring Framework 5.3.17 का उपयोग करने वाली समाधान-पूर्व परियोजना
  • fixed-demo/: Spring Framework 5.3.18 का उपयोग करने वाली समाधान-पश्चात परियोजना
  • notes/: अध्ययन नोट्स और प्रक्रिया रिकॉर्ड

मुख्य स्रोत कोड संरचना:

  • config/: Spring MVC कॉन्फ़िगरेशन क्लास और एप्लिकेशन इनिशियलाइज़ेशन क्लास
  • controller/: फॉर्म प्रोसेसिंग और गुण पथ निदान नियंत्रक
  • model/: नाम और ईमेल पैरामीटर प्राप्त करने के लिए UserProfile क्लास
  • WEB-INF/views/: होम पेज, सबमिट परिणाम और निदान परिणाम JSP पेज

परीक्षण परियोजना विवरण

इस परियोजना ने क्रमशः समाधान-पूर्व और समाधान-पश्चात दो Spring MVC एप्लिकेशन स्थापित किए हैं।

समाधान-पूर्व परियोजना

परियोजना निर्देशिका:

vulnerable-demo

उपयोग किया गया संस्करण:

Spring Framework 5.3.17

उत्पन्न WAR फ़ाइल:

spring4shell-vulnerable-demo.war

पहुँच पता:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/

निदान पृष्ठ:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/binding-probe

समाधान-पश्चात परियोजना

परियोजना निर्देशिका:

fixed-demo

उपयोग किया गया संस्करण:

Spring Framework 5.3.18

उत्पन्न WAR फ़ाइल:

spring4shell-fixed-demo.war

पहुँच पता:

http://127.0.0.1:8080/spring4shell-fixed-demo/

निदान पृष्ठ:

http://127.0.0.1:8080/spring4shell-fixed-demo/binding-probe

सामान्य कार्यक्षमता विवरण

परीक्षण परियोजना एक सरल उपयोगकर्ता प्रोफ़ाइल फॉर्म प्रदान करती है, जिसमें शामिल है:

  • नाम इनपुट बॉक्स
  • ईमेल इनपुट बॉक्स
  • प्रोफ़ाइल सबमिट बटन

नियंत्रक निम्नलिखित तरीके से अनुरोध पैरामीटर प्राप्त करता है:

@ModelAttribute("profile") UserProfile profile

जब उपयोगकर्ता नाम और ईमेल सबमिट करता है, तो Spring MVC name और email पैरामीटर को स्वचालित रूप से UserProfile ऑब्जेक्ट में बाइंड कर देता है।

परिणाम पृष्ठ बाइंड किए गए ऑब्जेक्ट को पढ़ता है और उपयोगकर्ता द्वारा सबमिट किया गया नाम और ईमेल प्रदर्शित करता है।

इस कार्यक्षमता का उपयोग यह पुष्टि करने के लिए किया जाता है कि परियोजना सामान्य रूप से चल सकती है, साथ ही यह साबित करने के लिए कि एप्लिकेशन में एक वैध Spring MVC अनुरोध पैरामीटर डेटा बाइंडिंग प्रवेश बिंदु मौजूद है।

परीक्षण विचार

यह परियोजना "पहले सामान्य कार्यक्षमता की पुष्टि करें, फिर प्रभाव स्थितियों की पुष्टि करें, उसके बाद केवल-पढ़ने के जोखिम निदान करें, और अंत में समाधान और पुनः परीक्षण करें" के विचार का पालन करती है।

  1. JDK 11, Maven और Apache Tomcat स्थापित और कॉन्फ़िगर करें।
  2. Spring Framework 5.3.17 का उपयोग करके Spring MVC परियोजना स्थापित करें।
  3. नाम और ईमेल फॉर्म बनाएं।
  4. @ModelAttribute का उपयोग करके अनुरोध पैरामीटर को UserProfile ऑब्जेक्ट में बाइंड करें।
  5. Maven का उपयोग करके परियोजना को WAR फ़ाइल के रूप में पैकेज करें।
  6. WAR फ़ाइल को स्वतंत्र रूप से चलने वाले Apache Tomcat में तैनात करें।
  7. स्थानीय अनुकरणित उपयोगकर्ता प्रोफ़ाइल सबमिट करें और सामान्य कार्यक्षमता आधारभूत सत्यापन पूरा करें।
  8. वास्तविक चल रहे JDK, Tomcat, Spring Framework और तैनाती विधि की जाँच करें।
  9. Spring BeanWrapper का उपयोग करके class.module.name का केवल-पढ़ने का निदान करें।
  10. Spring Framework 5.3.17 वातावरण में गुण पथ पहुँच परिणाम रिकॉर्ड करें।
  11. Spring Framework को 5.3.18 में उन्नयन करें।
  12. समाधान-पश्चात परियोजना का पुनर्निर्माण और तैनाती करें।
  13. समान गुण पथ का उपयोग करके समाधान के बाद पुनः परीक्षण करें।
  14. फिर से नाम और ईमेल सबमिट करें और पुष्टि करें कि सामान्य कार्यक्षमता प्रभावित नहीं हुई है।

प्रभाव स्थितियों की पुष्टि

इस परियोजना ने निम्नलिखित प्रभाव स्थितियों की एक-एक करके पुष्टि की है:

  • JDK 11.0.31 का उपयोग, JDK 9 या उच्चतर संस्करण की शर्त को पूरा करता है
  • Spring Framework 5.3.17 का उपयोग
  • परियोजना में spring-webmvc घटक शामिल है
  • Apache Tomcat 9.0.60 का उपयोग
  • परियोजना पारंपरिक WAR पैकेज के रूप में तैनात है
  • परियोजना स्वतंत्र रूप से चलने वाले Tomcat द्वारा लोड की गई है
  • नियंत्रक में @ModelAttribute पर आधारित डेटा बाइंडिंग प्रवेश बिंदु मौजूद है

समाधान-पूर्व परियोजना में वास्तव में तैनात Spring निर्भरताएँ शामिल हैं:

  • spring-beans-5.3.17.jar
  • spring-core-5.3.17.jar
  • spring-web-5.3.17.jar
  • spring-webmvc-5.3.17.jar

यह परियोजना केवल Spring Framework संस्करण के आधार पर सीधे भेद्यता की पुष्टि नहीं करती है, बल्कि JDK, Spring MVC, Tomcat, WAR तैनाती और डेटा बाइंडिंग प्रवेश बिंदु के संयोजन से व्यापक विश्लेषण करती है।

जोखिम निदान विधि

विनाशकारी भेद्यता शोषण से बचने के लिए, यह परियोजना Spring Framework द्वारा प्रदान किए गए BeanWrapper का उपयोग करके निम्नलिखित गुण पथ की केवल-पढ़ने की जाँच करती है:

class.module.name

यह पथ प्रतिनिधित्व करता है:

  • class: वर्तमान व्यावसायिक ऑब्जेक्ट के अनुरूप Java Class ऑब्जेक्ट तक पहुँच
  • module: उस वर्ग से संबंधित Java मॉड्यूल तक पहुँच
  • name: मॉड्यूल नाम पढ़ें

निदान प्रक्रिया केवल गुण पठनीयता जाँच और गुण मान पढ़ने की विधियों को कॉल करती है:

  • ऑब्जेक्ट गुण सेट नहीं करता
  • सर्वर कॉन्फ़िगरेशन संशोधित नहीं करता
  • सर्वर फ़ाइलें नहीं लिखता
  • ऑपरेटिंग सिस्टम कमांड निष्पादित नहीं करता

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

सत्यापन परिणाम

समाधान-पूर्व परिणाम

समाधान-पूर्व वातावरण में उपयोग किया गया:

Spring Framework 5.3.17

गुण पथ की जाँच:

class.module.name

निदान परिणाम:

  • क्या पढ़ा जा सकता है: true
  • पढ़ने का परिणाम: null

true इंगित करता है कि वर्तमान वातावरण सामान्य व्यावसायिक ऑब्जेक्ट के class गुण के माध्यम से module.name को पार्स करना जारी रख सकता है।

पढ़ने का परिणाम null है, क्योंकि वर्तमान WAR एप्लिकेशन Java अनाम मॉड्यूल में चल रहा है, मॉड्यूल का नाम खाली है, इसका मतलब यह नहीं है कि गुण पथ पढ़ना विफल रहा।

समाधान-पश्चात परिणाम

समाधान-पश्चात वातावरण में उपयोग किया गया:

Spring Framework 5.3.18

समान गुण पथ का उपयोग करके पुनः निदान:

class.module.name

निदान परिणाम:

  • क्या पढ़ा जा सकता है: false
  • पढ़ने का परिणाम: Not readable

समाधान से पहले और बाद के परिणाम स्पष्ट अंतर दर्शाते हैं:

  • Spring Framework 5.3.17: गुण पथ पढ़ा जा सकता है
  • Spring Framework 5.3.18: गुण पथ पढ़ा नहीं जा सकता

यह परिणाम दर्शाता है कि संस्करण उन्नयन के बाद, मूल निदान गुण पथ तक पहुँच प्रतिबंधित हो गई है, और समाधान से पहले देखा गया जोखिम प्रकटीकरण अब मौजूद नहीं है।

समाधान उपाय

यह परियोजना Spring Framework संस्करण को उन्नयन करके समाधान अपनाती है।

समाधान-पूर्व कॉन्फ़िगरेशन:

<spring.version>5.3.17</spring.version>

समाधान-पश्चात कॉन्फ़िगरेशन:

<spring.version>5.3.18</spring.version>

समाधान प्रक्रिया के दौरान निम्नलिखित कार्य किए गए:

  1. समाधान-पूर्व परियोजना को fixed-demo में कॉपी किया।
  2. नियंत्रक, डेटा मॉडल और JSP पृष्ठों के व्यावसायिक तर्क को अपरिवर्तित रखा।
  3. Spring Framework को 5.3.17 से 5.3.18 में उन्नयन किया।
  4. Maven का उपयोग करके समाधान संस्करण निर्भरताएँ पुनः डाउनलोड कीं।
  5. पुनः संकलित करके समाधान संस्करण WAR फ़ाइल उत्पन्न की।
  6. समाधान संस्करण WAR को Apache Tomcat में तैनात किया।
  7. समाधान परियोजना में वास्तव में तैनात Spring JAR संस्करणों की जाँच की।
  8. मूल गुण पथ का उपयोग करके सुरक्षा पुनः परीक्षण पूरा किया।
  9. नाम और ईमेल सबमिट कार्यक्षमता का पुनः परीक्षण किया।

समाधान-पश्चात परियोजना में वास्तव में तैनात Spring निर्भरताएँ शामिल हैं:

  • spring-beans-5.3.18.jar
  • spring-core-5.3.18.jar
  • spring-web-5.3.18.jar
  • spring-webmvc-5.3.18.jar

यह परिणाम साबित करता है कि समाधान संस्करण का पुनर्निर्माण किया गया और वास्तव में तैनात किया गया, न कि केवल pom.xml में संस्करण संख्या बदली गई।

समाधान के बाद सामान्य कार्यक्षमता पुनः परीक्षण

Spring Framework 5.3.18 में उन्नयन के बाद, समाधान परियोजना के होम पेज पर पुनः पहुँचें और निम्नलिखित परीक्षण डेटा सबमिट करें:

  • नाम: Alice
  • ईमेल: [email protected]

सबमिट करने के बाद, पृष्ठ अभी भी सामान्य रूप से प्रदर्शित होता है:

  • उपयोगकर्ता प्रोफ़ाइल सफलतापूर्वक सबमिट हुई
  • नाम Alice है
  • ईमेल [email protected] है

यह परिणाम दर्शाता है कि संस्करण उन्नयन ने परियोजना की मूल सामान्य अनुरोध पैरामीटर बाइंडिंग और पृष्ठ प्रदर्शन कार्यक्षमता को प्रभावित नहीं किया है।

भेद्यता का कारण

Spring MVC की स्वचालित डेटा बाइंडिंग तंत्र HTTP अनुरोध पैरामीटर नामों के आधार पर Java ऑब्जेक्ट गुणों तक पहुँच सकता है।

सामान्य व्यावसायिक पैरामीटर name और email को केवल UserProfile में संबंधित सामान्य गुणों तक पहुँचने की आवश्यकता है।

हालाँकि, Spring की गुण पहुँच तंत्र डॉट-युक्त नेस्टेड गुण पथों का भी समर्थन करता है। प्रभावित संस्करणों में, कुछ आंतरिक गुण पथों पर प्रतिबंध पर्याप्त रूप से सख्त नहीं हैं, जिससे बाहरी पैरामीटर विशिष्ट वातावरण में सामान्य व्यावसायिक ऑब्जेक्ट से Java Class, मॉड्यूल, क्लास लोडर या Servlet कंटेनर से संबंधित ऑब्जेक्ट्स में प्रवेश कर सकते हैं।

जब आंतरिक ऑब्जेक्ट्स में ऐसे लिखने योग्य गुण मौजूद होते हैं जो सर्वर कॉन्फ़िगरेशन या फ़ाइल सिस्टम को प्रभावित कर सकते हैं, और एप्लिकेशन एक साथ JDK, Tomcat, WAR तैनाती और डेटा बाइंडिंग जैसी स्थितियों को पूरा करता है, तो आगे रिमोट कोड निष्पादन का जोखिम पैदा हो सकता है।

यह भेद्यता name या email गुणों के कारण नहीं है, और सभी Spring MVC का उपयोग करने वाली परियोजनाएँ आवश्यक रूप से शोषण योग्य नहीं हैं। भेद्यता की पुष्टि के लिए आमतौर पर कई स्थितियों का एक साथ मौजूद होना आवश्यक है।

समाधान सुझाव

वास्तविक व्यावसायिक प्रणालियों में निम्नलिखित उपाय करने की अनुशंसा की जाती है:

  • वास्तव में चल रहे Spring Framework और Spring Boot संस्करणों की जाँच करें
  • प्राथमिकता से अभी भी आधिकारिक समर्थन प्राप्त सुरक्षा संस्करणों में उन्नयन करें
  • उन्नयन के बाद एप्लिकेशन का पुनर्निर्माण और तैनाती करें
  • अंतिम तैनाती पैकेज में वास्तविक Spring JAR संस्करणों की जाँच करें
  • नियंत्रक के डेटा बाइंडिंग दायरे को सीमित करें
  • केवल सामान्य व्यावसायिक आवश्यक फ़ील्ड को बाइंड करने की अनुमति दें
  • बाहरी पैरामीटर प्राप्त करने के लिए विशेष अनुरोध डेटा ऑब्जेक्ट का उपयोग करें
  • डेटाबेस संस्थाओं या आंतरिक जटिल ऑब्जेक्ट्स को सीधे बाहरी पैरामीटर के संपर्क में न आने दें
  • सुरक्षा सीमाओं के लिए फ्रंट-एंड सत्यापन पर निर्भर न रहें
  • तत्काल उन्नयन में असमर्थ प्रणालियों के लिए अस्थायी शमन उपाय अपनाएँ
  • अस्थायी शमन उपाय आधिकारिक संस्करण उन्नयन का विकल्प नहीं हैं
  • Tomcat और Java सेवाओं को कम विशेषाधिकार वाले खातों से चलाएँ
  • एप्लिकेशन निर्देशिकाओं और कॉन्फ़िगरेशन निर्देशिकाओं के लिए न्यूनतम आवश्यक अनुमतियाँ सेट करें
  • असामान्य अनुरोध पैरामीटर और सर्वर फ़ाइल परिवर्तनों की निगरानी करें
  • समाधान के बाद सुरक्षा पुनः परीक्षण और सामान्य व्यावसायिक कार्यक्षमता पुनः परीक्षण दोनों करें

महत्वपूर्ण स्क्रीनशॉट साक्ष्य

वातावरण और तैनाती

JDK 11 संस्करण पुष्टि

Maven संस्करण पुष्टि

Apache Tomcat 9.0.60 सफलतापूर्वक प्रारंभ

Maven पैकेजिंग सफल

WAR परियोजना तैनाती सफल

सामान्य कार्यक्षमता आधारभूत

परीक्षण परियोजना होम पेज सामान्य पहुँच

सामान्य कार्यक्षमता आधारभूत सत्यापन सफल

समाधान-पूर्व सत्यापन

Spring Framework 5.3.17 निर्भरता पुष्टि

समाधान-पूर्व आंतरिक गुण पथ पढ़ने योग्य

समाधान और पुनः परीक्षण

समाधान संस्करण पैकेजिंग सफल

समाधान के बाद आंतरिक गुण पथ पढ़ने योग्य नहीं

समाधान के बाद सामान्य कार्यक्षमता पुनः परीक्षण सफल

समाधान के बाद Spring Framework 5.3.18 निर्भरता पुष्टि

वर्तमान प्रगति

  • परियोजना निर्देशिका बनाई
  • README लिखा
  • परीक्षण रिपोर्ट बनाई
  • JDK, Maven और Tomcat वातावरण तैयार किया
  • Spring MVC परीक्षण परियोजना स्थापित की
  • WAR परियोजना पैकेजिंग और तैनाती पूरी की
  • सामान्य कार्यक्षमता आधारभूत सत्यापन पूरा किया
  • भेद्यता प्रभाव स्थितियों की पुष्टि पूरी की
  • स्थानीय केवल-पढ़ने का जोखिम निदान पूरा किया
  • भेद्यता कारण विश्लेषण पूरा किया
  • Spring Framework संस्करण उन्नयन पूरा किया
  • समाधान के बाद सुरक्षा पुनः परीक्षण पूरा किया
  • समाधान के बाद सामान्य कार्यक्षमता पुनः परीक्षण पूरा किया
  • समाधान के बाद वास्तविक निर्भरता संस्करण की पुष्टि की
  • परीक्षण रिपोर्ट और स्क्रीनशॉट साक्ष्य संकलित किए

परियोजना सारांश

इस परियोजना ने स्थानीय पृथक वातावरण में Spring Framework CVE-2022-22965 की प्रभाव स्थितियों की पुष्टि, जोखिम प्रकटीकरण निदान, संस्करण उन्नयन समाधान और समाधान के बाद पुनः परीक्षण पूरा किया।

समाधान-पूर्व परियोजना में Spring Framework 5.3.17 का उपयोग किया गया। JDK 11, Spring MVC, Apache Tomcat 9.0.60 और पारंपरिक WAR तैनाती वातावरण में, class.module.name गुण पथ को पढ़ने योग्य पाया गया।

समाधान-पश्चात परियोजना में Spring Framework को 5.3.18 में उन्नयन किया गया। समान गुण पथ अब पढ़ने योग्य नहीं है, जबकि नाम और ईमेल की सामान्य डेटा बाइंडिंग कार्यक्षमता अभी भी उपयोग की जा सकती है।

इस परियोजना ने पूर्ण रिमोट कोड शोषण नहीं किया, बल्कि सुरक्षित, नियंत्रित केवल-पढ़ने की विधि के माध्यम से समाधान से पहले और बाद के अंतरों का सत्यापन पूरा किया।

परियोजना निम्नलिखित क्षमताओं को प्रदर्शित करती है:

  • Java और Spring MVC मूलभूत वातावरण स्थापना
  • Maven परियोजना निर्माण
  • Tomcat WAR एप्लिकेशन तैनाती
  • Spring डेटा बाइंडिंग तंत्र की समझ
  • भेद्यता प्रभाव स्थितियों का विश्लेषण
  • सुरक्षा परीक्षण प्रक्रिया डिज़ाइन
  • घटक संस्करण उन्नयन
  • समाधान के बाद पुनः परीक्षण
  • सामान्य कार्यक्षमता प्रतिगमन परीक्षण
  • सुरक्षा परीक्षण रिपोर्ट लेखन
  • स्क्रीनशॉट साक्ष्य और GitHub परियोजना संकलन
टूल डाउनलोड करें