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 1 2 3 4 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
编辑
1 2 3 4 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
编译 1 2 3 4 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 错误 1 2 cd log4j-api-java9 cp ../toolchains-sample-linux.xml ../toolchains-sample-linux-9.xml
../toolchains-sample-linux-9.xml
这个文件内容改成:
1 2 3 4 5 6 7 8 9 10 <toolchain> <type>jdk</type> <provides> <version>9</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>/opt/jdk-9.0.4</jdkHome> </configuration> </toolchain>
然后
1 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错误 1 2 cd log4j-perf cp ../toolchains-sample-linux.xml ../toolchains-sample-linux-11.xml
../toolchains-sample-linux-11.xml
这个文件内容改成:
1 2 3 4 5 6 7 8 9 10 <toolchain> <type>jdk</type> <provides> <version>11</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>/opt/jdk-11.0.13</jdkHome> </configuration> </toolchain>
然后,
1 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