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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
spring-shell-vuln — Spring ने Spring Framework में RCE की पुष्टि की है। टीम ने इस मुद्दे के लिए बयान और शमन गाइड प्रकाशित किया है। अब, इस कमजोरी को CVE-2022-22965 के रूप में ट्रैक किया जा सकता है। | Kitploit
उपकरण/GitHubGitHub/snip3r69/spring-shell-vuln
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubsnip3r69/spring-shell-vuln

spring-shell-vuln

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

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

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

सभी देखें →

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

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

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

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

spring-shell-vuln

Spring4Shell: Spring कोर RCE भेद्यता


Spring ने Spring Framework में RCE की पुष्टि की है। टीम ने अभी-अभी इस मुद्दे के लिए बयान और शमन मार्गदर्शिकाएँ प्रकाशित की हैं। अब, इस भेद्यता को CVE-2022-22965 के रूप में ट्रैक किया जा सकता है।

Spring4Shell भेद्यता के बारे में कुछ जानकारी और Spring4Shell: विवरण और शोषण पोस्ट में विवरण साझा किए गए हैं। इसके अतिरिक्त, Praetorian की सुरक्षा टीम ने पुष्टि की है कि JDK9+ पर Spring Core CVE-2010-1622 के लिए बाईपास के कारण दूरस्थ कोड निष्पादन के लिए असुरक्षित है।

प्रारंभ में, यह 30 मार्च को शुरू हुआ, भेद्यता की पहली सूचना KnownSec 404 टीम के नेता Heige द्वारा संकेतित की गई थी। उन्होंने PoC चित्र के साथ चेतावनी संदेश "Spring core RCE (JDK >=9" ट्वीट किया।

image

जैसे ही हम भेद्यता की कहानी के साथ लाइव होते हैं, Heige Twitter से गायब हो जाता है। इसके पीछे का कारण नहीं पता लेकिन कुछ तो हो सकता है।

घटनाएँ

2021 के अंत में, इंटरनेट अपाचे लॉग4j2 में जीरो-डे दूरस्थ कोड निष्पादन भेद्यता, जिसे Log4Shell के नाम से भी जाना जाता है, के गिरने से जल रहा था। यह भेद्यता Alibaba Cloud सुरक्षा टीम द्वारा पाई गई थी।

- यह भेद्यता Log4Shell जितनी बुरी नहीं है। सभी हमले के परिदृश्य अधिक जटिल हैं क्योंकि जावा में क्लास लोडर मैनिपुलेशन हमले कैसे काम करते हैं। Spring4Shell शोषण के लिए एक कार्यशील POC प्राप्त करने के लिए गहन जावा ज्ञान की आवश्यकता होती है। क्लास लोडर मैनिपुलेशन Log4Shell भेद्यता की तुलना में समझना अधिक जटिल है।

आज, शोधकर्ताओं ने एक और सबसे खराब भेद्यता पाई जो गंभीर क्षति का कारण बन सकती है। अब बग को CVE-2022-22965 के रूप में ट्रैक किया जा रहा है, हम इसे Spring4Shell कह सकते हैं। यह भेद्यता JDK संस्करण 9.0 या उससे अधिक के साथ Spring कोर में मौजूद है।

Spring Framework और व्युत्पन्न फ्रेमवर्क spring-beans-*.jar फ़ाइलें या CachedIntrospectionResults.class

नीचे दिए गए सभी विवरण अब पुष्टि हो चुके हैं। मैं किसी भी क्षति के लिए जिम्मेदारी नहीं लेता।

भेद्यता विवरण और जाँच

दुनिया के सबसे लोकप्रिय जावा लाइटवेट ओपन-सोर्स फ्रेमवर्क में से एक के रूप में, Spring डेवलपर्स को व्यावसायिक तर्क पर ध्यान केंद्रित करने और जावा एंटरप्राइज़ अनुप्रयोगों के विकास चक्र को सरल बनाने की अनुमति देता है।

शोषण के लिए DataBinder सक्षम के साथ एक एंडपॉइंट की आवश्यकता होती है (उदाहरण के लिए, एक POST अनुरोध जो स्वचालित रूप से अनुरोध निकाय से डेटा डीकोड करता है) और एप्लिकेशन के लिए सर्वलेट कंटेनर पर काफी हद तक निर्भर करता है। उदाहरण के लिए, जब Spring को Apache Tomcat पर तैनात किया जाता है, तो WebAppClassLoader सुलभ होता है, जो एक हमलावर को अंततः डिस्क पर एक दुर्भावनापूर्ण JSP फ़ाइल लिखने के लिए गेटर्स और सेटर्स को कॉल करने की अनुमति देता है। हालाँकि, यदि Spring को एम्बेडेड टॉमकैट सर्वलेट कंटेनर का उपयोग करके तैनात किया जाता है, तो क्लासलोडर एक LaunchedURLClassLoader है जिसकी सीमित पहुँच है।

हालाँकि, Spring फ्रेमवर्क के JDK9 संस्करण (और उससे ऊपर) में, एक दूरस्थ हमलावर कुछ शर्तों को पूरा करने के आधार पर फ्रेमवर्क के पैरामीटर बाइंडिंग फ़ंक्शन के माध्यम से AccessLogValve ऑब्जेक्ट और दुर्भावनापूर्ण फ़ील्ड मान प्राप्त कर सकता है।

  • वर्तमान में यह ज्ञात है कि इस भेद्यता को ट्रिगर करने के लिए दो मूलभूत शर्तों की आवश्यकता होती है:
  • Spring MVC फ्रेमवर्क और JDK9 और उससे ऊपर का उपयोग करें

(1). JDK संस्करण संख्या जाँचें

संगठन प्रणाली के चल रहे सर्वर पर, चल रहे JDK संस्करण की जाँच करने के लिए "java -version" कमांड चलाएँ। यदि संस्करण संख्या 8 या उससे कम है, तो यह भेद्यता से प्रभावित नहीं है।

(2). Spring फ्रेमवर्क उपयोग की जाँच करें

  1. यदि संगठन प्रणाली परियोजना war पैकेज के रूप में तैनात है, तो निर्णय लेने के लिए नीचे दिए गए चरणों का पालन करें।
  • war पैकेज को अनज़िप करें: war फ़ाइल का एक्सटेंशन .zip में बदलें और ज़िप फ़ाइल को अनज़िप करें
  • डीकंप्रेसन निर्देशिका में spring-beans-*.jar प्रारूप (उदाहरण के लिए, spring-beans-5.3.16.jar) की jar फ़ाइल खोजें। यदि यह मौजूद है, तो इसका मतलब है कि व्यावसायिक प्रणाली spring फ्रेमवर्क का उपयोग करके विकसित की गई है।
  • यदि spring-beans-*.jar फ़ाइल मौजूद नहीं है, तो डीकंप्रेसन निर्देशिका में CachedIntrospectionResuLts.class फ़ाइल की उपस्थिति खोजें। यदि यह मौजूद है, तो इसका मतलब है कि व्यावसायिक प्रणाली Spring फ्रेमवर्क का उपयोग करके विकसित की गई है।
  1. यदि संगठन प्रणाली परियोजना jar पैकेज के रूप में सीधे और स्वतंत्र रूप से चलती है, तो निम्नलिखित चरणों के अनुसार निर्णय लें।
  • jar पैकेज को अनज़िप करें: jar फ़ाइल का एक्सटेंशन .zip में बदलें और ज़िप फ़ाइल को अनज़िप करें।
  • डीकंप्रेसन निर्देशिका में spring-beans-*.jar प्रारूप (उदाहरण के लिए, spring-beans-5.3.16.jar) की jar फ़ाइल खोजें। यदि यह मौजूद है, तो इसका मतलब है कि व्यावसायिक प्रणाली spring फ्रेमवर्क का उपयोग करके विकसित की गई है।
  • यदि spring-beans-*.jar फ़ाइल मौजूद नहीं है, तो डीकंप्रेसन निर्देशिका में CachedIntrospectionResuLts.class फ़ाइल की उपस्थिति खोजें। यदि यह मौजूद है, तो इसका मतलब है कि व्यावसायिक प्रणाली Spring फ्रेमवर्क का उपयोग करके विकसित की गई है।

(3) व्यापक जाँच

उपरोक्त दो चरणों की समस्या निवारण पूरा करने के बाद, यह निर्धारित करने के लिए कि यह इस भेद्यता से प्रभावित है, निम्नलिखित दो शर्तों को एक साथ पूरा किया जाना चाहिए:

  1. JDK संस्करण संख्या 9 और उससे ऊपर है;
  2. spring फ्रेमवर्क या व्युत्पन्न फ्रेमवर्क का उपयोग करना।

भेद्यता समाधान मार्गदर्शिकाएँ

अब [Spring टीम ने भेद्यता को ठीक कर दिया है] (https://www.cyberkendra.com/2022/03/spring4shell-spring-confirmed-rce-in.html) और Spring Boot 2.6.6 और 2.5.12 के नवीनतम संस्करण जारी किए हैं जो Spring Framework 5.3.18 पर निर्भर हैं।

WAF सुरक्षा

WAF जैसे नेटवर्क सुरक्षा उपकरणों पर, तैनात सेवाओं की वास्तविक ट्रैफ़िक स्थिति के अनुसार "class.", "Class.", ".class." और ".Class." जैसी स्ट्रिंग के लिए नियम फ़िल्टरिंग लागू करें। नियमों को फ़िल्टर करने के बाद, अतिरिक्त प्रभाव से बचने के लिए व्यावसायिक संचालन का परीक्षण करें।

अस्थायी मरम्मत के उपाय

लीक की अस्थायी मरम्मत एक साथ निम्नलिखित दो चरणों में की जानी चाहिए:

  1. एप्लिकेशन में वैश्विक रूप से @InitBinder एनोटेशन खोजें, यह देखने के लिए कि क्या विधि निकाय में dataBinder.setDisallowedFields विधि को कॉल किया गया है। यदि कोड स्निपेट का यह परिचय पाया जाता है, तो मूल ब्लैकलिस्ट में {"class.","Class.",".class.", ".Class."} जोड़ें। (नोट: यदि कोड स्निपेट का बहुत अधिक उपयोग किया जाता है, तो इसे हर जगह जोड़ने की आवश्यकता है)

  2. एप्लिकेशन सिस्टम के प्रोजेक्ट पैकेज के तहत निम्नलिखित वैश्विक वर्ग बनाएं, और सुनिश्चित करें कि यह वर्ग Spring द्वारा लोड किया गया है (इसे कंट्रोलर वाले पैकेज में जोड़ने की अनुशंसा की जाती है)। वर्ग जोड़ने के बाद, प्रोजेक्ट को पुन: संकलित और पैकेज करने की आवश्यकता है, और कार्यात्मक सत्यापन के लिए परीक्षण किया जाना चाहिए। और प्रोजेक्ट को पुनर्प्रकाशित करें।

import org.springframework.core.annotation.Order;

root@kitploit:~
    import org.springframework.web.bind.WebDataBinder;

    import org.springframework.web.bind.annotation.ControllerAdvice;

    import org.springframework.web.bind.annotation.InitBinder;

    @ControllerAdvice

    @Order(10000)

    public class GlobalControllerAdvice{ 

         @InitBinder

         public void setAllowedFields(webdataBinder dataBinder){

         String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};

         dataBinder.setDisallowedFields(abd);

         }

    }

image

Spring परियोजनाओं के [Git रिपॉजिटरी] (https://github.com/spring-projects/spring-framework/commit/7f7fb58dd0dae86d22268a4b59ac7c72a6c22529) से ऐसा प्रतीत होता है कि Spring डेवलपर दूरस्थ कोड निष्पादन भेद्यता के लिए एक सुधार पर काम कर रहा है, लेकिन हमें आधिकारिक पुष्टि की प्रतीक्षा करनी होगी।

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