【编译办法】Apache Log4j2远程代码执行漏洞(CNVD-2021-95914)补丁办法

Apache Log4j2远程代码执行漏洞(CNVD-2021-95914)

收到网络中心老师发的邮件

2021年12月10日,国家信息安全漏洞共享平台(CNVD)收录了Apache Log4j2远程代码执行漏洞(CNVD-2021-95914)。攻击者利用该漏洞,可在未授权的情况下远程执行代码,获得目标服务器权限。目前,漏洞利用细节已公开,Apache官方已发布补丁修复该漏洞。CNVD建议受影响用户立即更新至最新版本,同时采取防范性措施避免漏洞攻击威胁。
https://www.cert.org.cn/publish/main/8/2021/20211210110550958546708/20211210110550958546708_.html

服务器上有Apache服务,因此想办法修复补丁。在https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2找到了源码,拿下来不会编译,百度搜了下,找到了一个好用的答案。

好用的编译方法

主要步骤

安装apache-maven-3.6.3

cd /opt
wget https://mirrors.ocf.berkeley.edu/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz --no-check-certificate
mkdir /opt/maven
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt/maven

下载编译好的JDK

需要提前下载并解压JDK8, JDK9.0.4, JDK11.0.13

环境配置

要用Java1.8的环境
vim /etc/profile 编辑

export JAVAHOME=/opt/jdk1.8.0311
export MAVENHOME=/opt/maven/apache-maven-3.6.3
export CLASSPATH=.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jar
export PATH=$PATH:$JAVAHOME/bin:$MAVEN_HOME/bin

然后source /etc/profile

编译

wget https://github.com/apache/logging-log4j2/archive/refs/tags/log4j-2.15.0-rc2.tar.gz
tar -xzvf log4j-2.15.0-rc2.tar.gz
cd /opt/logging-log4j2-log4j-2.15.0-rc2
mvn clean

编译报错解决

1. 报 log4j-api-java9 错误
cd log4j-api-java9
cp ../toolchains-sample-linux.xml ../toolchains-sample-linux-9.xml

../toolchains-sample-linux-9.xml这个文件内容改成:

<toolchain>
    <type>jdk</type>
    <provides>
      <version>9</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
            <jdkHome>/opt/jdk-9.0.4</jdkHome>
    </configuration>
  </toolchain>

然后

mvn clean install -t ../toolchains-sample-linux-9.xml

然后,把这个文件cp到 ~/.m2/toolchains.xml

然后再退到/opt/logging-log4j2-log4j-2.15.0-rc2目录下,运行
mvn install -Dmaven.test.skip=true

2. 报log4j-perf错误
cd log4j-perf
cp ../toolchains-sample-linux.xml ../toolchains-sample-linux-11.xml

../toolchains-sample-linux-11.xml这个文件内容改成:

<toolchain>
    <type>jdk</type>
    <provides>
      <version>11</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
            <jdkHome>/opt/jdk-11.0.13</jdkHome>
    </configuration>
  </toolchain>

然后,

mvn clean install -t ../toolchains-sample-linux-11.xml

然后,把这个文件加到刚才改的 ~/.m2/toolchains.xml后面

然后再退到/opt/logging-log4j2-log4j-2.15.0-rc2目录下,运行
mvn install -Dmaven.test.skip=true

整个编译应该就结束了。

原文参考

https://zhuanlan.zhihu.com/p/444128036

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmmettPeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值