360网站安全检测平台今日发布红色警报称,广泛应用在国内大型网站系统的Struts2框架正在遭到黑客猛烈攻击。利用Struts2“命令执行漏洞”,黑客可轻易获得网站服务器ROOT权限、执行任意命令,从而窃取重要数据或篡改网页,目前国内至少有3500家网站存在该高危漏洞。据乌云漏洞平台显示,运营商及金融等领域大批网站,甚至包括政府网站均受Struts2漏洞影响。

360网站安全检测服务网址:http://webscan.360.cn
Struts框架官方最新版本:http://struts.apache.org/download.cgi#struts234

Struts2“命令执行漏洞”早在2010年已经曝光,但当时没有公开的漏洞利用工具,因此并未造成过多危害。直到近期,针对该漏洞新的攻击代码在网上公开,漏洞利用工具也随之涌现,使黑客攻击完全没有门槛,80%以上应用Struts2框架的网站因此面临严重风险。

经360网站安全检测平台分析,Apache Struts2中WebWork框架使用XWork基于HTTP参数名执行操作和调用,将每个HTTP参数名处理为OGNL(对象图形导航语言)语句。为了防范攻击者通过HTTP参数调用任意方式,XWork使用了以下两个变量保护方式的执行:

- OgnlContext的属性xwork.MethodAccessor.denyMethodExecution(默认设置为true) 
-SecurityMemberAccess私有字段allowStaticMethodAccess(默认设置为false)

为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了Java的unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值。进一步可调用java语句来执行任意命令,甚至控制操作系统。

之前Struts2官方补丁屏蔽了黑客通过\u0023 (16进制的#) 攻击的方式,但黑客仍可以利用\43(8进制的#)实施突破。

鉴于Struts2“命令执行漏洞”影响网站众多,且危害巨大,360网站安全检测平台已紧急更新漏洞库,并向存在漏洞的注册网站发送示警邮件,同时建议所有使用Struts2框架的用户立即升级至官方最新版本,并定期使用360网站安全检测服务随时掌控网站安全状况。

更新Struts2最新版本为Struts2.3.15.1

首先把项目中对应的这几个包都换成上面的包,这里要特别说明一下的是commons-lang3-3.1.jar对应的(我项目中就是commons-lang-2.6.jar)是不用删除替换的,保留它就可以了,因为它不会更commons-lang3-3.1.jar产生冲突,而且commons-lang还涉及到其它包的应用比如json。改了这些后jar的升级就算完成了。

现在就修改配置文件,首先修改web.xml的Struts2的FilterDispatcher改成如下:

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

然后就修改struts.xml的头部,修改成

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
    "http://struts.apache.org/dtds/struts-2.3.dtd">

最后把redirect-action改成redirectAction。

改了这些后就要把项目中的类出现的错误都解决了就可以正常运行项目了。

Struts2漏洞拉响网站安全红色警报以及把Struts2更新为最新版本Struts2.3.15.1步骤的更多相关文章

  1. Drupal 网站漏洞修复以及网站安全防护加固方法

    drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,dru ...

  2. struts2漏洞原理及解决办法

    1.原理 Struts2的核心是使用的webwork框架,处理action时通过调用底层的getter/setter方法来处理http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介 ...

  3. 【红色警报】XXE 高危漏洞将大面积影响微信支付安全,可能导致系统沦陷,请升级你的系统!

    今天,微信支付发布了一则紧急通知: 尊敬的微信支付商户: 您的系统在接受微信支付XML格式的商户回调通知(支付成功通知.退款成功通知.委托代扣签约/解约/扣款通知.车主解约通知)时,如未正确地进行安全 ...

  4. 今天晚上 中国互联网被Struts2漏洞血洗

    Apache官方今天晚上发布安全公告(官方编号S2-032/CVE编号CVE-2016-3081),Apache Struts2服务在开启动态方法调用(DMI)的情况下,可以被远程执行任意命令,安全威 ...

  5. Struts2漏洞解决

    如果你也正在使用Struts2作为web层框架做开发或者做公司的送检产品,然后被告知有各种各样的Struts2漏洞,那本篇博客值得你花时间来喽上一两眼. 前端时间抽空为公司做了新一代的送检产品,为了方 ...

  6. Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

    Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...

  7. struts2漏洞-第一次入侵经历

    这两天上数据库,老师给了我们一个网站,该网站是一个售花网站.是有一个师兄写的毕业设计.然后挂在内网,然后使用这个系统,然后分析网站,写个数据库设计的报告.简单的写了数据库作业后就闲来无事做,就想对这个 ...

  8. Struts2漏洞分析,漏洞波及全系版本

    Struts漏洞分析    Apache Struts团队已经发布了Struts 2.3.15.1安全更新版本.在Struts2.3.15.1版本之前,存在着严重的安全漏洞,如果现在一些比较大的网站是 ...

  9. Struts2漏洞

    近日,Struts2曝出2个高危安全漏洞,一个是使用缩写的导航参数前缀时的远程代码执行漏洞,另一个是使用缩写的重定向参数前缀时的开放式重定向漏洞.这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企 ...

随机推荐

  1. NodeJs>------->>第三章:Node.js基础知识

    第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info  方法 console.log(" node app1.js 1> ...

  2. java util Aarrys 类

    toString方法  产生一维数组的二维版本 public static String toString(type[] a) { //type 是传入数据类型 if (a == null) retu ...

  3. 【C++ Primer 第11章 练习答案】2. 关联容器操作

    11.3.1节练习 [练习11.16]代码 map<int, int> m; auto iter = m.begin(); iter ->second = ;

  4. android adb命令 抓取系统各种 log

    getLog.bat: adb root adb remount adb wait-for-device adb logcat -v time > C:\log.txt 在Android中不同的 ...

  5. C# event关键字

    直接使用委托的写法,如下: using System; namespace ConsoleAppTest { class Program { class Test { static void Main ...

  6. POJ 2456 3258 3273 3104 3045(二分搜索-最大化最小值)

    POJ 2456 题意 农夫约翰有N间牛舍排在一条直线上,第i号牛舍在xi的位置,其中有C头牛对牛舍不满意,因此经常相互攻击.需要将这C头牛放在离其他牛尽可能远的牛舍,也就是求最大化最近两头牛之间的距 ...

  7. #13【BZOJ2794】[Poi2012]Cloakroom

    题解: 感觉真是很智障..连这么简单的题都没想出来 一直在想这么做动态背包..发现不会 首先显然我们将询问按照m 序列按照a[i]排序 然后怎么满足b呢 其实很简单啊..只需要记录f[i]表示前面这些 ...

  8. BZOJP1899ZJOI2004

    老早的一道水题 题意: 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以 ...

  9. IIS 之 通过 Web.config 修改文件上传大小限制设置方法

    在IIS 6.0中,不设置默认大小为4M,设置文件上传大小的方法,maxRequestLength(KB),executionTimeout(毫秒),配置如下节点: <system.web> ...

  10. 【noip模拟赛7】足球比赛 树

    描述 在2009的中国城市足球比赛中,在2^N支队中,有一些队在开赛前宣布了退出比赛.比赛采取的是淘汰赛.比如有4支队伍参加,那么1队和2队比赛,3队和4队赛,然后1队和2队的胜者与3队和4队的胜者争 ...