IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> apache log4j2漏洞攻防演练与补丁升级说明 -> 正文阅读

[Java知识库]apache log4j2漏洞攻防演练与补丁升级说明

漏洞没有人们想的这么可怕

我这边是在12月7号左右得到的情报,当时拿到手我看了一眼,一点没有作出任何担忧。12月9号一早有人给我报了,下午左右我们的安全人员也向我报了。我依旧没有担忧。

是因为log4j这个东西早很多年已经报过几起类似的事件了。因此这一块我特别留意。

首先,我们前端有了腾讯WAF,已经挡掉了类似的攻击。

其次,我们的JDK是1.8但是我们升过一次级,>1.8_191版。因此就算受到攻击了也没事。

当你拥有较高版本jdk1.8(>1.8_191)时攻击进来是什么样的

这是在拥有高版jdk1.8受到攻击时的效果演示

攻击报文

?后端服务器上的显示

?看,什么事都没有。

如果你的jdk1.8版本较低时同时你拥有该漏洞系统会发生什么

我系统内有一个openjdk1.8的早期版本,我把web项目换成这个低版本的jdk然后我们看发生了什么。

把项目的jdk换成低版本

运行项目并喂入攻击参数

它按照我们的有危害代码,在服务器上如期望打开了safari浏览器。

以下是有危害的代码

以下是在本地被打开的safari浏览器。

更恐怖的是我自己还试了:

  • 在远程服务器建立一个目录;
  • 删掉服务器上的Redis

spring boot上如何升级相关的log4j2的全步骤

此次log4j漏洞存在于两个核心lib库:

  1. log4j-core
  2. log4j-api

分配CVE编号:CVE-2021-44228

CVSS评分:10.0(最高只能10分)

因此,对于spring boot项目,我们需要按照如下排查手段

?第一步:先排除spring-boot-starter-log4j2包内的log4j-core和log4j-api

<properties>
    <log4j2.version>2.15.0 </log4j2.version>
</properties>    
    <!-- 先排除老版本log4j2 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- 先排除老版本log4j2 -->

再把log4j升到最高版本

			<!-- 排除了老版本log4j2后升级到最新的2.15.0 -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>${log4j2.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>${log4j2.version}</version>
			</dependency>
			<!-- 排除了老版本log4j2后升级到最新的2.15.0 -->

第二步:确认该模块内无其它第三方库特别是:nacos、redis、mongo会引入老的log4j-api和log4j-core包,如有:排除掉

比如说,我这边的模块内有用到nacos,而nacos会自己把第三方的log4j-core, log4j-api包引入。因此你除了第一步执行外没用,你会发觉你依然会有“老”的log4j-core和log4j-api包。那么把第三方引入的log4j包也排干净。

           <dependency>
				<groupId>com.alibaba.cloud</groupId>
				<artifactId>spring-cloud-starter-alibaba-nacos-discovery
				</artifactId>
				<version>${nacos-discovery.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.slf4j</groupId>
						<artifactId>slf4j-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

第三步:工程启动不得有log相关红色报警,项目可以起,日志在本地以及相关环境内都可以正常吐出

验证把log4j2升级到了官方最新版后的效果

我们依然使用jdk1.8较低的版本来运行

喂入恶意代码

?得到结果如下

系统终于没有再打开我的safari了,而是直接把这段代码给打印输出了。

截止到这,整个log4j2升级成功。

以上攻击的“攻击环境”不做传授,因为太危险了,这个漏洞是可以“秒杀”你的服务器的,有兴趣的同学自己去研究好了,也不需要来问我,此处只做演示攻击效果来用予说明。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:32:20  更:2021-12-16 17:32:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:45:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码