## 0x00 log4j2 简介
log4j2是log4j的升级版本,基于java的日志框架,在java项目中被大量的引用,当用户输入数据被记录于日志中,攻击者可通过构造特殊请求,造成JNDI注入,来触发log4j达到命令执行,JNID可访问的目录服务有lLDAP,JDBC,RMI,DNS,NIS,CORBA,JNDI是java提供的一个java命令和目录接口,可通过其调用定位资产和程序对象,
0x01 影响版本条件
log4j2 版本影响网上公布在2.0.0-2.15.0,并且jdk版本不易过高,过高需要配置trustURLCodebase 设置为 true。
0x02 漏洞复现
docker安装:sudo apt-get update && sudo apt-get install docker docker docker-compose -y
检查安装成功docker环境:docker -v
检查安装成功compose环境:docker-compose version
拉取镜像文件:
service docker start
docker pull vulfocus/log4j2-rce-2021-12-09
开启环境,替换8080端口避免冲突:
docker run -tid -p 38080:8080 vulfocus/log4j2-rce-2021-12-09
访问地址:192.168.222.134:38080
post传参被禁止,采用get传参,发现错误
将get urlencode编码传参访问正常
查看DNSlog回显
0x03 log4j漏洞防护
1.升级最新版本的log4j组件
2.临时处理,过滤${},避免被执行命令
0x04 小结
此镜像被网上公开版本,镜像现已被二次修改,后续的反弹shell需get传参,有兴趣朋友可以自己研究一下。
post传参:修改get为post 添加请求头:Content-Type:application/x-www-form-urlencoded
文章参考:https://blog.csdn.net/weixin_47019868/article/details/122010972
https://www.cnblogs.com/scivous/p/15684246.html