Struts2 S2-016漏洞修复总结

所属分类: 网络安全 / 业界动态 阅读数: 219
收藏 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漏洞;
更多精彩内容其他人还在看

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

小米手机最新发布的青春版 .才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 分享

对于www.pei.net.ph仿冒入侵菲律宾网站的整体性分析

菲律宾事件最近闹的挺凶,在网上也不例外.菲律宾的一些网站也被黑了.怎么看呢.
收藏 0 赞 0 分享

Google AdSense允许修改西联汇款拼音姓名

GOOGLE允许修改拼音姓名了.对我们来说又是一大方便
收藏 0 赞 0 分享

黑客都是天才:网络中10种不同类型的黑客分析

黑客都不是一般的人.天才.我们看一下都有哪些类型
收藏 0 赞 0 分享

微软发布Fix it工具修复IE7/8/9漏洞 ie用户请尽快修复(0day漏洞)

日前有安全机构曝光了IE浏览器的一个0day漏洞,利用这个0day漏洞(CVE-2012-4681)攻击者可以绕过Windows的ASLR(地址空间布局随机化)防护机制,访问用户曾访问过的计算机上所有文件
收藏 0 赞 0 分享

未来互联网企业安全问题预测 网络安全是场硬仗

互联网的发展已经步入稳定期,未来不会像之前那样呈现爆发性增长的状况了,那么未来的网络谁是主角?是安全。云计算与大数据在为我们的生活工作带来方便的同时,也面临着从未有过的危机考验,企业更是如此,安全变得无比重要
收藏 0 赞 0 分享
查看更多