您的位置:首页 > 编程语言 > Java开发

struts2升级2.3.32或2.5.10.1

2017-03-23 15:59 323 查看
漏洞年年有,最近特别多。2017年3月6日,Apache Struts2被曝存在远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017-5638,官方评级为高危,该漏洞是由于在使用基于Jakarta插件的文件上传功能条件下,恶意用户可以通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行任意系统命令,导致系统被黑客入侵。 
漏洞分析请移步:https://yq.aliyun.com/articles/72008 

 
建议 

 
如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞,请升级到struts 2.3.32或2.5.10.1版本

升级struts2.3.32比较简单,更换对应jar即可



升级struts2.5.10.1比较麻烦,需要注意:

(1)       strutsPrepareAndExecuteFilter路径变了:



(2)      struts.xml文件中的版本得变成2.5

<!DOCTYPE
strutsPUBLIC
"-//ApacheSoftware Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">

(3)      使用通配符是找不到对应的action,需要设置:

<global-allowed-methods>regex:.*</global-allowed-methods>,最好是全局设置:



注意:package中的设置排列是按一定顺序排列的,如何乱排启动会报错的,到时候可自行根据提示信息按要求排序。

(4)      struts的标签改变,目前发现的有:<s:property escape=”false”/>,escape换成了escapeHtml;<s:iteratorid=””></s:iterator>,id换成var;

(5)      升级后使用的是log4j2,而不是log4j,需要log4j-api-2.7.jar和

log4j-core-2.7.jar,并且配置 log4j2.xml

(6)      升级后jdk需要1.7以上

更换对应jar包:



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: