Struts2框架站点风险的示例分析


这期内容当中小编将会给大家带来有关Struts2框架站点风险的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 概述
Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,后来成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller〔MVC〕设计模式的应用框架〔WebFramework〕,是MVC经典设计模式中的一个经典产品。在JavaEE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServerPages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,CraigMcClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架随着Struts2框架的普及,越来越多的企业单位使用Struts2框架进行开发,近年来多次爆出高危漏洞,多个政府站点,银行、大型互联网公司等单位,受到影响,例如:2016年12月爆出京东 12G 用户数据泄露,其中包括用户名、密码、邮箱、QQ号、电话号码、身份证等多个维度,数据多达数千万条,究其原因源于 2013 年 Struts 2 的安全漏洞问题。当时国内几乎所有互联网公司及大量银行、政府机构都受到了影响,导致大量数据泄露,而每次struts2爆出漏洞后各大互联网漏洞平台也接收到多个反馈如:

Struts2的代码执行问题最早要追溯到2010年,当时来自Google安全Team的Meder Kydyraliev发现可以通过用unicde编码的形式绕过参数拦截器对特殊字符“#”的过滤,造成代码执行问题,官方漏洞编号S2-003,回顾struts2的漏洞历史,我们发现官方难辞其咎,首先,开发人员安全意识不强,虽然采取了基本的安全措施,但是形同虚设。其次,官方修复力度不够,给我们的感觉总像是在敷衍了事,未能从根本上解决问题。再就是,官方的开放精神确实很震撼,竟然直接将漏洞的PoC挂在官网,这样给了很多人进一步研究漏洞利用的机会,这个也是导致问题更加严重的一个原因。影响比较大,利用比较广泛的struts2漏洞:CVE-2010-1870XWork ParameterInterceptors bypass allows OGNLstatement executionCVE-2012-0392struts2 DevMod Remote Command Execution VulnerabilityCVE-2011-3923Struts
CVE-2013-1966Struts2
CVE-2013-2251Struts2
Struts2
Struts2
CNVD-2016-02506,CVE-2016-3081,受影响版本Struts 2.3.20 – StrutsStruts 2.3.28(2.3.20.3和2.3.24.3除外)CVE编号:CVE-2016-4438 Struts(S2-037)远程代码执行漏洞,受影响版本:Struts 2.3.20 – Stru免费云主机域名ts Struts 2.3.28.1CVE-2017-5638 受影响版本:Struts 2.3.5 – Struts 2.3.31Struts 2.5 –Struts 2.5.10其他具体可参照struts2官网提供的漏洞历史:https://cwiki.apache.org/confluence/display/WW/Security+Bulletins
针对漏洞频发的Struts2框架我们对省内使用Struts框架的分布情况进行了调查统计,通过对个地市站点进行指纹识别,绘制出省内各地市使用Strust2框架分布图表如下:

结合大数据分析和关键字识别我们对采集到的使用Strust2站点所在的行业情况进行分析,绘制出如下图表:

具体表格数据:从上图可以看出位于前三位(注:不计其他企业)的是政府部门(占比28.29%)、互联网企业(25.18%)、教育机构(9.8%) 我们针对采集到的使用Struts2中间件站点进行漏洞检测,本次使用互联网上影响比较大的几个高危漏洞进行验证,检测漏洞(S2-045、S2-037、S2-032、S2-016)的存在修复个加固情况,经过对1580个站点样本进行检测,发现仍然有部分站点Struts2漏洞并未修复,对检测出漏洞的站点统计信息如下图:检测中我们发现有很多网站Stuts2之前的老漏洞尚未进行过修复,从而在Stuts2漏洞的中,将网站注册用户赤裸裸地暴露在黑客攻击枪口面前。面对日益复杂的形势,信息安全已经成为一个不仅仅只关乎技术的问题。科技的发展是一把双刃剑,其能造福人类,亦能产生破坏性的功效。而这一点,除了技术本身之外,或许更多的要从我们的意识层面去把握,面对漏洞带来如此之大的影响,足以给互联网业界信息安全从业人员带来警醒:信息安全的警钟,应时刻长鸣。1、我们在信息系统开发中应养成良好的开发习惯,多数漏洞从开发阶段就存在,而由于开发过程中的疏忽,逻辑漏洞等也会给系统带来很大的安全风险。2、网站数据及时备份,在系统遭到攻击时,可以第一时间对被攻击系统进行恢复。3、对后台服务安装防病毒软件,定时对服务器进行病毒查杀,等安全检查。4、实时留意最新的互联网漏洞情况,对信息系统存在的漏洞进行及时修补。5、经常性的对系统进行渗透测试,漏洞测试等工作,及时发现问题,及时修复,防止漏洞暴露在互联网上。6、对不在使用的系统进行及时下线,一般老系统中存在更多的安全问题,管理不善可能会泄露大量敏感信息。上述就是小编为大家分享的Struts2框架站点风险的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注云编程开发博客行业资讯频道。

相关推荐: 如何保护非结构化数据

  简单地说,数据可分为结构化数据和非结构化数据。对于非结构化的数据保护你知道怎么做吗?  下面先跟大家区分一下结构化和非结构化数据。  结构化数据,简单来说就是数据库,如MySQLOracleMS SQL ServerPostgreSQL。结合到典型场景中更…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/06 17:40
下一篇 02/07 09:51