Apache Log4j 远程代码执行漏洞的终极解决方案

1.背景

最近一个老系统被检查出有Apache Log4j 远程代码执行漏洞,需要解决此问题,基于此,写此文章记录一下

2.问题分析

老生常谈了,之前发现此漏洞,处理方案都是升级jar包
但是,漏洞随着时间一直有出现,如果一直升级jar包,麻烦不说,治标不治本,开发运维疲于奔命

3.终极解决方案

不升级版本,直接删除jar包中的JndiLookup.class,一劳永逸
具体操作如下:

# (1)使用root用户访问机器,输入下面命令,查找低版本log4j-core位置
find / -name  log4j-core-*

# (2)通过(1)步查找结果,可以知道哪些WEB程序使用了
# 使用WEB程序部署的用户如test登录服务器,输入下面命令,查看是否存在JndiLookup.class
# 指令:jar -tf [第(1)步查找到的文件全路径] |grep 'log4j'|grep 'Jndi'
jar -tf /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar |grep 'log4j'|grep 'Jndi'
# 备注:log4j-core可能还有其他命名

# (3)删除JndiLookup.class
# 指令:zip -q -d [第(1)步查找到的文件全路径] [第(2)步查找到的JndiLookup.class相对路径]
zip -q -d /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

# 备注:当log4j-core的文件名不是log4j-core-2.8.2.jar,相对路径可能不是这个org/apache/logging/log4j/core/lookup 
 
 
# (4)验证是否存在JndiLookup.class,同第(2)步操作
jar -tf /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar |grep 'log4j'|grep 'Jndi'
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值