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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2024-38819 — CVE-2024-38819 का गहराई से विश्लेषण, एक Spring WebFlux फ़ाइल ट्रैवर्सल कमज़ोरी, जिसमें कोड-स्तरीय विवरण, PoC, और फ़िल्टर और IPS नियमों सहित शमन रणनीतियाँ शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/skrkcb2/cve-2024-38819
भेद्यता विश्लेषणशोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगपेपर और शोधलर्निंग और शिक्षा
GitHubskrkcb2/cve-2024-38819

cve-2024-38819

CVE-2024-38819 का गहराई से विश्लेषण, एक Spring WebFlux फ़ाइल ट्रैवर्सल कमज़ोरी, जिसमें कोड-स्तरीय विवरण, PoC, और फ़िल्टर और IPS नियमों सहित शमन रणनीतियाँ शामिल हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2024-38819

01. File-Traversal और Webflux अवलोकन

  • 1) File-Traversal और WebFlux अवलोकन

    File-Traversal (पथ अन्वेषण, Path Traversal) भेद्यता एक ऐसी कमजोरी है जो हमलावर को वेब एप्लिकेशन में फ़ाइल सिस्टम की अनुमतियों को दरकिनार कर मनमानी फ़ाइलों तक पहुँचने की अनुमति देती है, और इसे CWE-22 नामक एक प्रकार के हमले के रूप में नामित किया गया है।

    Spring WebFlux एक मॉड्यूल है जो Spring 5 में प्रस्तुत किया गया था और रिएक्टिव प्रोग्रामिंग का समर्थन करता है, जो एसिंक्रोनस नॉन-ब्लॉकिंग एप्लिकेशन विकास का समर्थन करता है, और WebFlux.fn फ़ंक्शनल एंडपॉइंट रूटिंग प्रदान करता है, जो लैम्ब्डा अभिव्यक्तियों के उपयोग से संक्षिप्त और लचीली रूटिंग कॉन्फ़िगरेशन का समर्थन करता है।

    CVE-2024-38819 WebFlux.fn, WebMVC.fn का उपयोग करने वाले एप्लिकेशन में उत्पन्न होता है, और यह दस्तावेज़ देखता है कि यह भेद्यता WebFlux के आधार पर कैसे उत्पन्न होती है, कोड प्रवाह की जाँच करता है, और उसके अनुसार समाधान के उपाय तलाशता है।

02. Webflux 6.13 वातावरण में File-Traversal भेद्यता विश्लेषण

  • 2.1 Webflux 6.13 का उपयोग कर File-Traversal विश्लेषण

    Spring Webflux 6.13 में स्टैटिक रिसोर्स को सर्व करने के उदाहरण के माध्यम से File-Traversal हमला किया जा सकता है। उदाहरण की जाँच करके हम जानेंगे कि Spring Webflux का उपयोग करके File-Traversal कैसे उत्पन्न होता है।
[चित्र 1] Spring WebFlux में /static/** पर आने वाले सभी अनुरोधों को सर्वर की C:/file निर्देशिका में ढूँढकर सर्व करता है। यहाँ RouterFunctions.resources कॉल के दौरान [चित्र 2], [चित्र 3] webflux के PathResourceLookupFunction.class में समस्या शुरू होती है। [चित्र 2] PathResourceLookupFunction - apply Spring WebFlux में जाँचता है कि दिया गया पथ एक वैध संसाधन की ओर इंगित करता है या नहीं, और उस संसाधन को Mono के रूप में लौटाता है। इस प्रक्रिया में पथ मिलान, वैधता जाँच, पथ डिकोडिंग, संसाधन पहुँच आदि कई चरण शामिल हैं, जिनमें isInvalidPath फ़ंक्शन में भेद्यता उत्पन्न होती है। [चित्र 3] PathResourceLookupFunction - isInvalidPath में StringUtils.cleanPath(path).contains("../") शर्त मौजूद है, http://localhost:8080/static/file/../Windows/System32/drivers/etc/hosts अनुरोध करने पर यह शर्त True नहीं हो सकती। इसका कारण [चित्र 4] StringUtils.class - cleanPath में देखें तो StringUtils.cleanPath(path) TOP_PATH("..") को हटाने के बाद पथ को pathElements में डालता है और top 0 हो जाता है, इसलिए ".." एक बार डाला गया हमला वाक्यांश सामान्य वाक्यांश के रूप में संसाधित होता है। इस प्रकार [चित्र 3] का isInvalidPath फ़ंक्शन false लौटाता है। [चित्र 5] के isResourceUnderLocation के cleanPath कॉल के माध्यम से [चित्र 6] के cleanPath से एक और जाँच की जाती है और [चित्र 5] से भेजा गया पथ C:/file../Windows/System32/drivers/etc/hosts है। [चित्र 7] के कोड के माध्यम से prefix C:/ हो जाता है और पथ [चित्र 4] के माध्यम से / Windows/System32/drivers/etc/hosts में बदल जाता है, अंतिम रिटर्न C:/Windows/System32/drivers/etc/hosts के रूप में संसाधित होने का प्रवाह है।

1) Spring Webflux 6.13 का उपयोग कर File-Traversal हमले का प्रवाह

छवि विवरण

[चित्र 1] FileApplication.java



छवि विवरण

[चित्र 2] PathResourceLookupFunction.class - apply




छवि विवरण

[चित्र 3] PathResourceLookupFunction.class - isInvalidPath


छवि विवरण

छवि विवरण

[चित्र 4] StringUtils.class - cleanPath


छवि विवरण

[चित्र 5] PathResourceLookupFunction.class - apply - 2

छवि विवरण

[चित्र 6] PathResourceLookupFunction.class - isResourceUnderLocation

छवि विवरण

[चित्र 7] StringUtils.class - cleanPath -2


2) Spring Webflux 6.13 का उपयोग कर File-Traversal हमले का उदाहरण

वर्तमान में विंडोज में C:/file के साथ परीक्षण किया गया है, लेकिन यह मामला लिनक्स में सिम्बोलिक लिंक के साथ काम करने पर बहुत खतरनाक है।
(../../ दो बार सेट करने पर सामान्य तर्क, ../ केवल एक बार होने पर ही भेद्यता उत्पन्न होती है) 20250207_150316

2-1) Spring Webflux 6.13 का उपयोग कर File-Traversal हमले का उदाहरण2

लिनक्स सर्वर पर सिम्बोलिक लिंक के साथ हमला

root@kitploit:~
 public RouterFunction<ServerResponse> staticResourceRouter() {
     return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
 }

सिम्बोलिक लिंक जोड़ें ln -s /static /app/static/link, फिर हमला 20250208_101836

03. समाधान के उपाय

अब तक हमने देखा कि Spring Webflux वातावरण में File Traversal (CVE-2024-38819) कैसे क्रियान्वित होता है। यह सर्वर की जानकारी चुराने वाला हमला है, इसलिए समाधान के उपाय महत्वपूर्ण हैं। इसके लिए हम नवीनतम संस्करण अपडेट, अतिरिक्त जाँच तर्क निर्माण, और IPS के माध्यम से अवरोधन के उपाय प्रस्तुत करते हैं।

  • Spring Framework अपडेट

    नीचे दी गई तालिका देखें और अपने उपयोग किए जा रहे संस्करण की जाँच करके अपग्रेड करें।

    छवि विवरण

  • अतिरिक्त जाँच तर्क निर्माण का उदाहरण

    उपरोक्त हमले के उदाहरण से देखा जा सकता है कि TOP_PATH(..) एक बार शामिल होने का मामला समस्या पैदा करता है, इसलिए एक सरल फ़िल्टर लागू करने का तर्क (डेवलपर्स इसे और जोड़ सकते हैं)
    root@kitploit:~
    @Bean
    public RouterFunction<ServerResponse> staticResourceRouter() {    
      return RouterFunctions.resources("/static/**", new FileSystemResource("C:/file"))
              .filter((request, next) -> {
                  String path = request.path();
                  if (path.contains("..")) {
                     if(!StringUtils.cleanPath(path).contains("../")) {
                         return ServerResponse.status(HttpStatus.FORBIDDEN).bodyValue("Vuln path access.");
                     }        
                  }
                  return next.handle(request);
              });
    }
    
  • IPS के माध्यम से अवरोधन

    हमले का उदाहरण: Postman के माध्यम से url में ../ पथ शामिल कर अनुरोध
    image ../ ऊपरी पथ की ओर जाने वाले सभी url अनुरोधों को अवरुद्ध करना
    20250210_150316

04. निष्कर्ष

अब तक हमने Webflux के माध्यम से File Traversal के बारे में जाना। यह भेद्यता StringUtils.cleanPath() के तर्क में उत्पन्न समस्या को न पहचानने के कारण हुई थी।

05. संदर्भ सामग्री

(POC) https://github.com/masa42/CVE-2024-38819-POC
(स्प्रिंग आधिकारिक) https://spring.io/security/cve-2024-38819
(CVE-DETAIL) https://www.cvedetails.com/cve/CVE-2024-38819/
(NIST) https://nvd.nist.gov/vuln/detail/cve-2024-38819

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