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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2023-34035-mitigations | Kitploit
उपकरण/GitHubGitHub/jzheaux/cve-2023-34035-mitigations
भेद्यता विश्लेषणकोड विश्लेषणवेब सुरक्षागलत कॉन्फ़िगरेशनलर्निंग और शिक्षाAPI सुरक्षा
GitHubjzheaux/cve-2023-34035-mitigations

cve-2023-34035-mitigations

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

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

सभी देखें →

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

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

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

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

यह रिपॉजिटरी उन व्यवस्थाओं को प्रदर्शित करने के लिए नमूनों का एक सेट है जिनमें अनुप्रयोग https://spring.io/security/cve-2023-34035[CVE-2023-34035] के प्रति संवेदनशील हो सकते हैं।

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

Spring MVC क्लासपाथ पर है

DispatcherServlet और कम से कम एक अन्य सर्वलेट मैप किए गए हैं; उनमें से एक के पास पाथ-आधारित सर्वलेट मैपिंग है (उदाहरण के लिए, /path/**)

अनुप्रयोग उन एंडपॉइंट्स को संदर्भित करने के लिए requestMatchers(String) का उपयोग करता है जिनकी सर्वलेट मैपिंग /path/** के रूप में होती है

== नमूने

ऐसे नमूनों का एक सेट है जो Spring Boot का उपयोग करते हैं और एक सेट जो नहीं करता।

जिन नमूनों में विफल परीक्षण हैं वे CVE-2023-34035 के प्रति संवेदनशील हैं। जिन नमूनों के परीक्षण पास होते हैं वे संवेदनशील नहीं हैं।

सभी मामलों में, इनमें से प्रत्येक नमूने में Spring Security से वही शमन त्रुटि होती है, हालाँकि ध्यान दें कि कई परिस्थितियों में ऐसा शमन अस्थायी होता है, जब तक कि अगला मेंटेनेंस रिलीज़ न आ जाए।

=== servlet:java-configuration:dispatcher-servlet-path

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/java-configuration/dispatcher-servlet-path[यह नमूना] एक संवेदनशील अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को डिफ़ॉल्ट / के बजाय /mvc/* पर डिप्लॉय किया गया है।

यह संवेदनशील है क्योंकि Spring MVC क्लासपाथ पर है, DispatcherServlet और कम से कम एक अन्य सर्वलेट मैप किया गया है -- उनमें से एक नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग के साथ (इस मामले में, DispatcherServlet), और अनुप्रयोग उन एंडपॉइंट्स को सुरक्षित करने के लिए requestMatchers(String) का उपयोग करता है।

=== servlet:java-configuration:jetty

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/java-configuration/jetty[यह नमूना] एक सुरक्षित अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को / (डिफ़ॉल्ट) पर डिप्लॉय किया गया है।

यह संवेदनशील नहीं है। जबकि Spring MVC क्लासपाथ पर है और DispatcherServlet उपयोग में है, यह / पर डिप्लॉय किया गया है और कोई नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग नहीं है।

=== servlet:java-configuration:other-servlets

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/java-configuration/other-servlets[यह नमूना] एक संवेदनशील अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet के साथ-साथ एक कस्टम सर्वलेट MyServlet भी डिप्लॉय किया गया है।

यह संवेदनशील है क्योंकि Spring MVC क्लासपाथ पर है, DispatcherServlet और कम से कम एक अन्य सर्वलेट मैप किया गया है -- उनमें से एक नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग के साथ (इस मामले में, MyServlet), और अनुप्रयोग उन एंडपॉइंट्स को सुरक्षित करने के लिए requestMatchers(String) का उपयोग करता है।

=== servlet:java-configuration:tomcat

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/java-configuration/tomcat[यह नमूना] एक सुरक्षित अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को / (डिफ़ॉल्ट) पर डिप्लॉय किया गया है।

यह संवेदनशील नहीं है। जबकि Spring MVC क्लासपाथ पर है और DispatcherServlet उपयोग में है, यह / पर डिप्लॉय किया गया है और कोई नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग नहीं है।

=== servlet:java-configuration:two-dispatcher-servlets

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/java-configuration/two-dispatcher-servlets[यह नमूना] एक संवेदनशील अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet के साथ-साथ एक कस्टम सर्वलेट MyServlet भी डिप्लॉय किया गया है।

यह संवेदनशील है क्योंकि Spring MVC क्लासपाथ पर है, DispatcherServlet और कम से कम एक अन्य सर्वलेट मैप किया गया है -- उनमें से एक नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग के साथ (इस मामले में, दो DispatcherServlets में से एक), और अनुप्रयोग उन एंडपॉइंट्स को सुरक्षित करने के लिए requestMatchers(String) का उपयोग करता है।

=== servlet:spring-boot:java:dispatcher-servlet-path

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/spring-boot/java/dispatcher-servlet-path[यह नमूना] एक संवेदनशील अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को डिफ़ॉल्ट / के बजाय /mvc/* पर डिप्लॉय किया गया है।

यह संवेदनशील है क्योंकि Spring MVC क्लासपाथ पर है, DispatcherServlet और कम से कम एक अन्य सर्वलेट मैप किया गया है -- उनमें से एक नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग के साथ (इस मामले में, DispatcherServlet), और अनुप्रयोग उन एंडपॉइंट्स को सुरक्षित करने के लिए requestMatchers(String) का उपयोग करता है।

=== servlet:spring-boot:java:jetty

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/spring-boot/java/jetty[यह नमूना] एक सुरक्षित अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को / (डिफ़ॉल्ट) पर डिप्लॉय किया गया है।

यह संवेदनशील नहीं है। जबकि Spring MVC क्लासपाथ पर है और DispatcherServlet उपयोग में है, यह / पर डिप्लॉय किया गया है और कोई नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग नहीं है।

=== servlet:spring-boot:java:other-servlets

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/spring-boot/java/other-servlets[यह नमूना] एक संवेदनशील अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet के साथ-साथ एक कस्टम सर्वलेट MyServlet भी डिप्लॉय किया गया है।

यह संवेदनशील है क्योंकि Spring MVC क्लासपाथ पर है, DispatcherServlet और कम से कम एक अन्य सर्वलेट मैप किया गया है -- उनमें से एक नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग के साथ (इस मामले में, MyServlet), और अनुप्रयोग उन एंडपॉइंट्स को सुरक्षित करने के लिए requestMatchers(String) का उपयोग करता है।

=== servlet:spring-boot:java:tomcat

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/spring-boot/java/tomcat[यह नमूना] एक सुरक्षित अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को / (डिफ़ॉल्ट) पर डिप्लॉय किया गया है।

यह संवेदनशील नहीं है। जबकि Spring MVC क्लासपाथ पर है और DispatcherServlet उपयोग में है, यह / पर डिप्लॉय किया गया है और कोई नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग नहीं है।

=== servlet:spring-boot:java:undertow

https://github.com/jzheaux/cve-2023-34035-mitigations/tree/main/servlet/spring-boot/java/undertow[यह नमूना] एक सुरक्षित अनुप्रयोग का प्रतिनिधित्व करता है जहाँ DispatcherServlet को / (डिफ़ॉल्ट) पर डिप्लॉय किया गया है।

यह संवेदनशील नहीं है। जबकि Spring MVC क्लासपाथ पर है और DispatcherServlet उपयोग में है, यह / पर डिप्लॉय किया गया है और कोई नॉन-रूट, पाथ-आधारित सर्वलेट मैपिंग नहीं है।

== शमन उपाय

यदि आपको निम्न जैसी त्रुटि मिलती है:

.Bash [source,bash,role="primary"]

This method cannot decide whether these patterns are Spring MVC patterns or not. If this endpoint is a Spring MVC endpoint, please use requestMatchers(MvcRequestMatcher); otherwise, please use requestMatchers(AntPathRequestMatcher).

तो आपको उसका पालन करना चाहिए।

[NOTE] Spring Security के 5.8.5, 6.0.5, 6.1.2, और 6.2.0-M1 संस्करणों में कुछ गलत-सकारात्मक परिणाम हैं। अब कई मामलों में निम्नलिखित अस्थायी है, जब तक कि 5.8.6, 6.0.6, 6.1.3, और 6.2.0-M2 रिलीज़ न हों।

जैसा कि त्रुटि संदेश में संकेत दिया गया है, प्राथमिक शमन उपाय एक पूर्ण RequestMatcher का उपयोग करना है।

ऐसा इसलिए है ताकि सर्वलेट मैपिंग को अधिक स्पष्ट रूप से ध्यान में रखा जा सके।

उदाहरण के लिए, यदि किसी अनुप्रयोग में /my-servlet/* पर एक सर्वलेट डिप्लॉय है और वह उस ट्रैफ़िक को इस प्रकार अधिकृत कर रहा है:

.Java [source,java,role="primary"]

@Bean SecurityFilterChain appSecurity(HttpSecurity http) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .requestMatchers("/my-servlet/").hasRole("USER") .requestMatchers("/spring-mvc-controller/").hasRole("USER") .anyRequest().authenticated() ) // ... return http.build(); }

तो, अनुप्रयोग को इसके बजाय ऐसा करना चाहिए:

.Java [source,java,role="primary"]

import static org.springframework.security.web.util.matcher.AntPathRequestMatcher.antMatcher;

@Bean MvcRequestMatcher.Builder mvc(HandlerMappingIntrospector introspector) { return new MvcRequestMatcher.Builder(introspector); }

@Bean SecurityFilterChain appSecurity(HttpSecurity http, MvcRequestMatcher.Builder mvc) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .requestMatchers(antMatcher("/my-servlet/*")).hasRole("USER") .requestMatchers(mvc.pattern("/spring-mvc-controller/**")).hasRole("USER") .anyRequest().authenticated() ) // ... return http.build(); }

या, यदि DispatcherServlet को किसी भिन्न पाथ पर डिप्लॉय किया गया है, जैसे /spring-mvc/*, तो इसके बजाय:

.Java [source,java,role="primary"]

@Bean SecurityFilterChain appSecurity(HttpSecurity http) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .requestMatchers("/spring-mvc/controller/**")).hasRole("USER") .anyRequest().authenticated() ) // ... return http.build(); }

अनुप्रयोग को ऐसा करना चाहिए:

.Java [source,java,role="primary"]

@Bean MvcRequestMatcher.Builder mvc(HandlerMappingIntrospector introspector) { return new MvcRequestMatcher.Builder(introspector).servletPath("/spring-mvc"); }

@Bean SecurityFilterChain appSecurity(HttpSecurity http, MvcRequestMatcher.Builder mvc) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .requestMatchers(mvc.pattern("/controller/**")).hasRole("USER") .anyRequest().authenticated() ) // ... return http.build(); }

MvcRequestMatcher का निर्माण करते समय सर्वलेट पाथ को अलग करना यह सुनिश्चित करने के लिए महत्वपूर्ण है कि अनुरोध सही ढंग से मेल खाता है।

== ब्रांचें

इस रिपॉजिटरी में, Spring Security के प्रत्येक माइनर रिलीज़ के लिए एक ब्रांच है।

उस ब्रांच पर, प्रभावित प्रत्येक नमूने के लिए आवश्यक शमन उपाय सहित एक कमिट है।

उदाहरण के लिए, 5.8.x ब्रांच पर, उन आठ नमूनों की मरम्मत के लिए आठ कमिट हैं जिन्हें शमन की आवश्यकता है।

जब 5.8.6, 6.0.6, 6.1.3, और 6.2.0-M2 रिलीज़ हो जाएँगे, तो उन ब्रांचों में अतिरिक्त परिवर्तन किए जाएँगे ताकि सर्वोत्तम-अभ्यास शमन उपाय स्पष्ट हो।

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