Struts2的S2-016漏洞是之前比较重大的漏洞,也是一些老系统的历史遗留问题
此漏洞影响struts2.0-struts2.3的所有版本,可直接导致服务器被远程控制从而引起数据泄漏,影响巨大
漏洞修复总结有4种方式:
1、升级版本
这也是Apache官方给出的建议,把Struts2的版本升级到2.3.15以上的版本,这种方式只需要替换一些jar包,归纳如下:
commons-lang3-3.2.jar
freemarker-2.3.22.jar
javassist-3.11.0.GA.jar
ognl-3.0.6.jar
struts2-core-2.3.24.jar
struts2-spring-plugin-2.3.24.jar
xwork-core-2.3.24.jar
只需要用上述jar包(版本可能会有差距)替换老系统中的旧版本jar包;
但是这种方式存在一定的缺陷,如果系统非常复杂,可能会有版本不兼容,jar版本冲突,导致系统功能不能 使用的情况;
2、覆盖JAR包
下载上述图片,把后缀名改为zip,把里面解压出来的三个文件夹添加到漏洞的系统的src目录下
然后再web.xml文件中添加代码:
复制代码代码如下:
org.hdht.commonweb.listener.MyServletContextListener
最后发布项目,重启服务器
3、修改Struts2的源码
找到项目中的struts2-core-2.2.3.jar,反编译得到源码,在eclipse中新建一个java项目,把反编译的源码导进去
修改org\apache\struts2\dispatcher\mapper\DefaultActionMapper.java这个文件中的handleSpecialParameters ***
在while循环(for循环)中加入下面代码:
复制代码代码如下:
if (key.endsWith(".x") || key.endsWith(".y")) {
key = key.substring(0, key.length() - 2);
}
保存,这个新项目可能会有错误,需要导入两个jar包,xwork-core-2.1.6.jar和servlet-api.jar
把这个新项目导出成jar包,把下图中的7个类,替换掉原先struts2-core-2.2.3.jar中的7个类
4、结合上面的第2和第3种方式
还是需要用到struts2的源码,同第3步,反编译得到源码,导入到一个新的项目中
下载第2步中的压缩包,解压之后得到三个文件,把这三个文件夹添加到新项目的 org\apache\struts2\dispatcher\mapper包中,如下图
头发留太长会和身体抢营养吗?这是蚂蚁庄园7月17号今日庄园小课堂的问题,很多用户还不知道答案,本文小编会为大家详细介绍,感兴趣的小伙伴们,一起和小编来看看吧! 蚂蚁庄园回答知识送饲料活动开始啦!...
“泰国 伴游 同志-【孙婉】” 外围模特预约平台如果经纪人暂时比较忙,请耐心等待哦。如果经纪人暂时比较忙,请耐心等待哦。长沙高端模特预约:8036米/夜,太原私人高端伴游:6088米/2次上海高端...
QQ记录怎么查询查询老婆的QQ聊天记录在IT互联网行业,产品经理自2012年起,一直是备受追捧的岗位,亦被行业看做是CEO的候选人。数据说话,看看拉勾网上产品经理的薪资水平(毕业3年内平均达到1.5...
本文导读目录: 1、不用手机号码只用微信能查到行动轨迹吗? 2、微信如何查行踪 3、如何从微信运动看出一个人的行踪? 4、微信能查行程轨迹吗 5、可以用微信查朋友的行踪吗 6、微信...
黑客找手机收费标准相关问题 黑客雇佣平台网络技术相关问题 中国防黑客的叫什么卫星 黑客入门书(黑客入门书籍) 黑...
以微信7.0.18为例,微信可以解绑手机号的。但是解绑手机号之后就不能找到通讯录里的好友了。更不能利用手机号登录或者是找回密码了。 微信(wechat)是腾讯公司于2011年1月21日推出...