9

apache log4j2漏洞攻防演练与补丁升级说明

 2 years ago
source link: https://blog.csdn.net/lifetragedy/article/details/121926310
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

我这边是在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

再把log4j升到最高版本

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

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

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

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

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

喂入恶意代码

 得到结果如下

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK