struts2-core-2.3.15.1遇到两个漏洞升级最新版【Struts 2.5.26】

本文介绍了从Struts2的2.3.15.1版本升级到2.5.26过程中的关键步骤和解决的漏洞问题,包括修改web.xml中的Struts2 filter配置,升级commons-lang3和ognl库,注释struts.xml的objectTypeDeterminer,以及解决freemarker报错问题。升级旨在修复S2-045和S2-061远程代码执行漏洞。
摘要由CSDN通过智能技术生成

一、背景

一个老网站Struts2版本struts2-core-2.3.15.1,遇到两个漏洞。

①被查到存在编号【Struts2  S2-045 远程命令执行漏洞,CVE编号CVE-2017-5638】;受影响版本:【Struts 2.3.5 – Struts 2.3.31 Struts 2.5 – Struts 2.5.1】。

②升级版本过程中查询到存在另一个漏洞。计划升级到相近版本2.3.37。但在查询网上帮助时,发现有另一个漏洞;【Struts2 S2-061 远程代码执行漏洞(CVE-2020-17530)】;受影响版本:【Struts 2.0.0 – Struts 2.5.25】;漏洞已Struts 2.5.26版本中修复。

只能升级到【Struts 2.5.26】,目前(2021年4月20日)的最新版   

下载地址:https://struts.apache.org/download.cgi

二、具体实施

由于种种原因,只能将部署Tomcat下webAPP中的程序进行升级。

经过多方的挣扎排除报错,现将改动的位置和替换的包列出以供相似问题的码农们参考。

  一、漏洞简介     Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,主要提供两个版本框架产品:Struts 1和Struts 2。     Apache Struts 2.3.5 - 2.3.31版本及2.5 - 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-15 2,CVE-2017-5638)。该漏洞与Apache Struts2 (S2-045)远程代码执行漏洞原理基本相同,均是由于上传功能的异常处理函数没有正确处理用户输入的错误信息,导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令。      二、漏洞危害     攻击者可通过发送恶意构造的HTTP数据包利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站造篡改等影响。由于该漏洞利用无需任何前置条件(如开启dmi,debug等功能)以及启用任何插件,因此漏洞危害较为严重。     三、修复措施     目前,Apache官方已针对该漏洞发布安全公告,并且漏洞利用代码已被公布在互联网上,请受影响用户及时检查是否受该漏洞影响。另外,已通过升级方式修复了Apache Struts2 (S2-045)远程代码执行漏洞的用户,不在该漏洞影响的范围内。     【自查方式】     用户可查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar文件,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞。     【升级修复】     受影响用户可升级版本至Apache Struts 2.3.32 或 Apache Struts 2.5.10.1以消除漏洞影响。     官方公告: https://cwiki.apache.org/confluence/display/WW/S2-046 https://cwiki.apache.org/confluence/display/WW/S2-046
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值