背景:
北京时间12月9号深夜,Apache Log4j2被曝出一个高危漏洞,攻击者通过jndi注入攻击的形式可以轻松远程执行任何代码。随后官方紧急推出了2.15.0和2.15.0-rc1新版本修复,依然未能完全解决问题,现在已经更新到2.15.0-rc2。该漏洞被命名为Log4Shell,编号CVE-2021-44228。
官网漏洞介绍
logging.apache.org/log4j/2.x/i…
搜索方法
1、jar包搜索
没用maven的项目: 搜索项目依赖jar是否有:log4j-core-*.jar log4j-api-*.jar
使用maven项目:
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.0</version>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.0</version>
2、配置文件搜索
一般文件名称为:log4j2.xml ,注意啊 是log4j2.xml 不是log4j.xml
常规配置:
- <configuration status="WARN" monitorInterval="30"
- <appenders>
- <console name="Console" target="SYSTEM_OUT">
- <PatternLayout
3、代码搜索
org.apache.logging.log4j.LogManager;
Logger logger2 = LogManager.getLogger(Test.class);
附:顺手搜索了下Loj4J 和 Log4J 2的区别
log4j2和log4j是一个作者,只不过log4j2是重新架构的一款日志组件,他抛弃了之前log4j的不足,以及吸取了优秀的logback的设计重新推出的一款新组件,具体区别如下
1. jar包名不一样:
<!-- Log4J-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>***</version>
</dependency>
<!-- Log4J2-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>***</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>***</version>
</dependency>
2. 配置文件不一样
Log4j: 使用的是 log4j.properties
Log4j2: 使用的是 log4j2.xml或者json
3. 代码调用
Log4j:
org.apache.log4j.Logger;
Logger logger = Logger.getLogger(Test.class)
Log4j2:
org.apache.logging.log4j.LogManager;
Logger logger2 = LogManager.getLogger(Test.class);