CVE-2022-22978-demo
CVE-2022-22978 भेद्यता नमूना कोड
उपयोग की शर्तें
हालांकि इसे उच्च जोखिम के रूप में वर्गीकृत किया गया है, लेकिन इसका उपयोग करने की शर्तें काफी कठिन हैं। व्यक्तिगत रूप से मुझे लगता है कि यह भेद्यता काफी बेकार है।
- सबसे पहले, spring-security निश्चित रूप से भेद्यता से प्रभावित सीमा में है।
- दूसरे, spring-security के रेगेक्स मैचर regexMatchers या सीधे RegexRequestMatcher का उपयोग करने की आवश्यकता है, और पथ मिलान के लिए '.' का उपयोग करना होगा, जैसे:
- regexMatcher("/api/.*") // /api के अंतर्गत सभी उपपथों की अनुमति देता है
- regexMatcher("/files/.*\.jpg") // .jpg पर समाप्त होने वाले सभी फ़ाइल अनुरोधों से मेल खाता है
- regexMatcher("/user/.*/profile") // /user के अंतर्गत किसी भी उपयोगकर्ता नाम के प्रोफ़ाइल पथ की अनुमति देता है
- वास्तव में यह स्थिति दुर्लभ है, उदाहरण के लिए regexMatcher("/api/."), ऐसा पथ होने पर, एक कंट्रोलर होना भी आवश्यक है जिसमें @RequestMapping("/api/") एनोटेशन हो, ताकि /api के अंतर्गत सभी पथों के अनुरोधों को संभाला जा सके। अन्यथा, भले ही हम %0a%0d का उपयोग करके spring-security के पथ मिलान नियमों को बायपास कर दें, फिर भी 404 त्रुटि होगी।
उपयोग प्रदर्शन
सामान्य रूप से सभी पथों तक पहुँचने पर spring-security द्वारा प्रदान किए गए डिफ़ॉल्ट लॉगिन पृष्ठ पर रीडायरेक्ट हो जाएगा।

पहुँच: http://127.0.0.1:8080/admin/admin%0a, लॉगिन सफलतापूर्वक बायपास हुआ

पहुँच: http://127.0.0.1:8080/hello%0a
सभी पथों के लिए आवश्यक लॉगिन सुरक्षा जाँच को बायपास कर दिया, लेकिन @RequestMapping("/hello/*") एनोटेशन वाले कंट्रोलर की कमी के कारण मैपिंग विफल हो गई और 404 त्रुटि दिखाई दी
