`
maxer025
  • 浏览: 75100 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Apache log4j2 远程命令执行漏洞复现及修复方案

阅读更多



附:从jar包中删除class文件的方法:

注意:

如果容器化部署,容器实例重启后操作会复原,需要重新操作。
实际执行需要关注文件属主和权限等安全属性。
1. 非SpringBoot的jar包,直接删除log4j-core-*.jar中class文件
     zip -q -d  */WEB-INF/lib/log4j-core-2.0.1.jar org/apache/logging/log4j/core/lookup/JndiLookup.class ;

2. SpringBoot的jar包,需要解压出log4j-core*.jar,删除class文件后重新打包
2.1 使用zip和unzip命令
  # 以Demo.jar为例
## 解压获得log4j-core*.jar
unzip -o Demo.jar BOOT-INF/lib/log4j-core*.jar
## 删除class
zip -q -d BOOT-INF/lib/log4j-core*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
## 重新打包
zip -r -0 Demo.jar BOOT-INF/
## 检查jar包中的log4j-core*.jar包是否已经更新
unzip -l Demo.jar | grep log4j-core
## 删除临时文件
rm -rf BOOT-INF/
## 检查下jar包是否可以正常启动
java -jar Demo.jar

2.2 使用jar命令(需要jdk)
# 以Demo.jar为例

## 创建临时目录
rm -rf tmp && mkdir tmp && cd tmp
## 解压
jar -xf ../Demo.jar
## 删除class
zip -q -d BOOT-INF/lib/log4j-core*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
## 重新打包
jar -cfm0 Demo.jar ./META-INF/MANIFEST.MF ./
## 删除临时文件
rm -rf BOOT-INF/ META-INF/ org/
## 检查下jar包是否可以正常启动
java -jar Demo.jar
————————————————
版权声明:本文为CSDN博主「杨小熊的笔记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Next_Second/article/details/121941830







https://blog.csdn.net/Next_Second/article/details/121941830
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics