Struts2 S2-016漏洞修复总结

所属分类: 网络安全 / 业界动态 阅读数: 128
收藏 0 赞 0 分享
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文件中添加代码:

复制代码
代码如下:

<listener>
<listener-class>org.hdht.commonweb.listener.MyServletContextListener</listener-class>
</listener>

最后发布项目,重启服务器

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包中,如下图



然后,再修改org\apache\struts2\dispatcher\mapper\DefaultActionMapper.java这个文件中的handleSpecialParameters方法

在while循环中加入如下代码:

复制代码
代码如下:

if (JavaEEbugRepair.repair_s2_017(key)) {
return;
}
if ((key.contains("action:")) || (key.contains("redirect:")) || (key.contains("redirectAction:"))) {
return;
}


保存,把新项目导出成jar包

把原来jar中的7个类替换,加入新包repair,再把替换之后的jar复制到项目中,替换之前的jar包

总结:

以上4种方式基本能处理所有项目的S2-016漏洞;
更多精彩内容其他人还在看

首次使用瑞星网络版杀毒软件要注意的问题

瑞星杀毒软件网络版可以对网络内的计算机进行统一的安装、设置、管理、维护和升级,从而为企业网络提供完善的病毒防范体系。对于初次接触瑞星杀毒软件网络版的用户来讲,使用经验的缺乏和对产品功能的不熟悉都可能导致工作量增加,甚至埋下安全隐患。
收藏 0 赞 0 分享

中国移动WFIF疑遭破解 蹭WIFI网凸显管控难题

近日,一款名为“畅无线”的应用蹿红网络,原因在于,它利用中国移动的WiFi管理漏洞,为使用者提供免费的无线上网服务。
收藏 0 赞 0 分享

廉价恶意程序 绑架你的电脑 逼你交 赎金

当代木马恶意软件的趋势并不仅仅是通过洪水般的广告让你电脑当机或者是偷取你的银行密码,而是会将你的电脑锁住,让你不能干任何事情,除非你交了赎金
收藏 0 赞 0 分享

10种方式智能手机可获取你行踪

智能手机具备的最重要的功能之一就是知道它们在哪里。对于台式电脑、笔记本电脑、个人导航设备或者平板电脑,你比较难以随身携带,而智能手机可以随手放入口袋,它能够将其位置信息与很多其他数据相结合以提供新服务。
收藏 0 赞 0 分享

小米手机收货后开箱实拍图 解解馋吧

小米手机最近很火,你身边有用小米手机的人吗?让我们来看看小米手机的开箱实拍图吧
收藏 0 赞 0 分享

小米手机青春版开箱实拍图 (多图)

小米手机最新发布的青春版 .才1499元.配置绝了.来让我们来看一下最新拍的开箱图吧.绝对够味
收藏 0 赞 0 分享

CVE公共漏洞和暴露分析报告2012-0774

CVE 的英文全称是Common Vulnerabilities & Exposures公共漏洞和暴露。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据
收藏 0 赞 0 分享

Android安卓其实是Google下的一剂药

Android安卓对于Google到倒意味着什么呢.本文从另一个角度分析.
收藏 0 赞 0 分享

关于私有云(云计算))安全问题的讲解

注:本文中的观点仅代表个人意见,如有不妥之处还请海涵。今天我们来详细说说私有云的安全。
收藏 0 赞 0 分享

关于网址的HTTP头引发的我们关于安全问题的思考

本文主要介绍了HTTP头所引发的问题.我们来剖析一下.了解清楚
收藏 0 赞 0 分享
查看更多