1.首先更新jar包。从官网下载对应版本 struts-2.5.22-lib。下面是我选择的替换需要用的包
2.一定要删除自己项目中的xwork-core-2.3.20.jar,因为这个类库在struts升级到2.5版本已经包含在了struts2-core中了,所以一定要删除。这时候我们自定义拦截器中可能需要修改了。
修改前:
修改后:
3.修改配置
1)修改web.xml
2)修改struts.xml
头部文件:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
自定义Action需要添加配置,否则访问报错。注意位置需要放在action之前
<global-allowed-methods>regex:.*</global-allowed-methods>
3)更新struts-tags.tld。找到这个文件替换即可
修改到这里基本上就完成了。启动或访问出错基本上就是自己的业务工具包、日志相关问题了。
3.顺利启动后我们可以下载一个漏洞检测工具看下效果。可以看到更新版本前后的一个对比。
通过这个检测工具发现在未更新版本钱还可以成功执行cmd命令,细思极恐啊。更新后漏洞也不存在了。cmd命令也不能成功执行。