目录
2.     漏洞盘点
2.1.  漏洞历史
2.2.  struts2漏洞盘点
3.     分布情况
4.     安全建议
首页 运维 安全 Struts2框架站点风险的示例分析

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

May 30, 2023 pm 12:32 PM
struts2

1.     概述

Apache软件基金会(ASF)赞助的一个开源项目是Struts。该项目最初是Jakarta项目的一个分支,随后被提升为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品。 

在Java EE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServer Pages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。这两种方法在混合表现与业务逻辑代码方面不可避免,给前期开发和后期维护带来了巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts。该框架产品曾一度被视为最广泛和最流行的JAVA WEB应用框架

   Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架

2.     漏洞盘点

2.1.  漏洞历史

随着Struts2框架的普及,越来越多的企业单位使用Struts2框架进行开发,近年来多次爆出高危漏洞,多个政府站点,银行、大型互联网公司等单位,受到影响,例如:2016年12月爆出京东 12G 用户数据泄露,其中包括用户名、密码、邮箱、QQ号、电话号码、身份证等多个维度,数据多达数千万条,究其原因源于 2013 年 Struts 2 的安全漏洞问题。当时国内几乎所有互联网公司及大量银行、政府机构都受到了影响,导致大量数据泄露,而每次struts2爆出漏洞后各大互联网漏洞平台也接收到多个反馈如:


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

Struts2的代码执行问题最早要追溯到2010年,当时来自Google安全Team的Meder Kydyraliev发现可以通过用unicde编码的形式绕过参数拦截器对特殊字符“#”的过滤,造成代码执行问题,官方漏洞编号S2-003,

回顾struts2的漏洞历史,我们发现官方难辞其咎,首先,开发人员安全意识不强,虽然采取了基本的安全措施,但是形同虚设。其次,我们感觉官方的修复措施缺乏力度,似乎只是敷衍了事,而未能真正解决问题的根源。再就是,官方的开放精神确实很震撼,竟然直接将漏洞的PoC挂在官网,这样给了很多人进一步研究漏洞利用的机会,这个也是导致问题更加严重的一个原因。

2.2.  struts2漏洞盘点

影响比较大,利用比较广泛的struts2漏洞:

CVE-2010-1870XWork ParameterInterceptors bypass allows OGNLstatement execution

CVE-2012-0392struts2 DevMod Remote Command Execution Vulnerability

CVE-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 - Struts Struts 2.3.28.1

CVE-2017-5638 受影响版本:Struts 2.3.5 – Struts 2.3.31

Struts 2.5 –Struts 2.5.10

其他具体可参照struts2官网提供的漏洞历史:

https://cwiki.apache.org/confluence/display/WW/Security Bulletins

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

3.     分布情况

针对漏洞频发的Struts2框架我们对省内使用Struts框架的分布情况进行了调查统计,通过对个地市站点进行指纹识别,绘制出省内各地市使用Strust2框架分布图表如下:


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

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


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

具体表格数据:

序号   行业类型   数量   百分比  
1   政府部门   447   28.29%  
2   教育机构   155   9.80%  
3   金融行业   110   6.96%  
4   保险行业   28   1.77%  
5   证券行业   14   0.88%  
6   能源行业   8   0.50%  
7   交通行业   93   5.88%  
8   电信运营商   114   7.21%  
9   互联网企业   398   25.18%  
10   其他企业   213   13.48%  

从上图可以看出位于前三位(注:不计其他企业)的是政府部门(占比28.29%)、互联网企业(25.18%)、教育机构(9.8%)

   我们针对采集到的使用Struts2中间件站点进行漏洞检测,本次使用互联网上影响比较大的几个高危漏洞进行验证,检测漏洞(S2-045、S2-037、S2-032、S2-016)的存在修复个加固情况,经过对1580个站点样本进行检测,发现仍然有部分站点Struts2漏洞并未修复,对检测出漏洞的站点统计信息如下图:

序号 行业 存在漏洞数量
1 政府部门 3
2 教育机构 2
3 金融行业 1
4 互联网企业 2
5 其他 2

检测中我们发现有很多网站Stuts2之前的老漏洞尚未进行过修复,从而在Stuts2漏洞的中,将网站注册用户赤裸裸地暴露在黑客攻击枪口面前。

4.     安全建议

随着形势日益复杂化,信息安全已经变成不仅仅涉及技术的问题。科技的发展是一把双刃剑,其能造福人类,亦能产生破坏性的功效。而这一点,除了技术本身之外,或许更多的要从我们的意识层面去把握,面对漏洞带来如此之大的影响,足以给互联网业界信息安全从业人员带来警醒:信息安全的警钟,应时刻长鸣。

1、我们在信息系统开发中应养成良好的开发习惯,多数漏洞从开发阶段就存在,而由于开发过程中的疏忽,逻辑漏洞等也会给系统带来很大的安全风险。

2、网站数据及时备份,在系统遭到攻击时,可以第一时间对被攻击系统进行恢复。

3、对后台服务安装防病毒软件,定时对服务器进行病毒查杀,等安全检查。

4、实时留意最新的互联网漏洞情况,对信息系统存在的漏洞进行及时修补。

5、经常性的对系统进行渗透测试,漏洞测试等工作,及时发现问题,及时修复,防止漏洞暴露在互联网上。

6、对不在使用的系统进行及时下线,一般老系统中存在更多的安全问题,管理不善可能会泄露大量敏感信息。

以上是Struts2框架站点风险的示例分析的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何从防护角度看Struts2历史漏洞 如何从防护角度看Struts2历史漏洞 May 13, 2023 pm 05:49 PM

一、前言Struts2漏洞是一个经典的漏洞系列,根源在于Struts2引入了OGNL表达式使得框架具有灵活的动态性。随着整体框架的补丁完善,现在想挖掘新的Struts2漏洞会比以前困难很多,从实际了解的情况来看,大部分用户早就修复了历史的高危漏洞。目前在做渗透测试时,Struts2漏洞主要也是碰碰运气,或者是打到内网之后用来攻击没打补丁的系统会比较有效。网上的分析文章主要从攻击利用的角度来分析这些Struts2漏洞。作为新华三攻防团队,我们的一部分工作是维护ips产品的规则库,今天回顾一下这个系

Struts2框架的原理是什么 Struts2框架的原理是什么 Jan 04, 2024 pm 01:55 PM

Struts2框架的原理:1、拦截器解析请求路径;2、查找Action的完整类名;3、创建Action对象;4、执行Action方法;5、返回结果;6、视图解析。它原理基于拦截器的机制,使得业务逻辑控制器与Servlet API完全脱离开,提高了代码的可重用性和可维护性。通过使用反射机制,Struts2框架可以灵活地创建和管理Action对象,实现请求与响应的处理。

struts2漏洞 S2-001实例分析 struts2漏洞 S2-001实例分析 May 15, 2023 pm 03:58 PM

Vulhub漏洞系列:struts2漏洞S2-0011.漏洞描述:struts2漏洞S2-001是当用户提交表单数据且验证失败时,服务器使用OGNL表达式解析用户先前提交的参数值,%{value}并重新填充相应的表单数据。例如,在注册或登录页面中。如果提交失败,则服务器通常默认情况下将返回先前提交的数据。由于服务器用于%{value}对提交的数据执行OGNL表达式解析,因此服务器可以直接发送有效载荷来执行命令。2.vulhub漏洞利用:用vulhub复现漏洞可以省去环境的搭建过程,相当方便。vu

Struts2 S2-059 远程代码执行漏洞复现是怎么样的 Struts2 S2-059 远程代码执行漏洞复现是怎么样的 May 23, 2023 pm 10:37 PM

0x00简介Struts2是Apache软件组织推出的一个相当强大的JavaWeb开源框架,本质上相当于一个servlet。Struts2基于MVC架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级Javaweb应用程序,它利用并延伸了JavaServletAPI,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。0x01漏洞

Struts2-057 两个版本RCE漏洞实例分析 Struts2-057 两个版本RCE漏洞实例分析 May 15, 2023 pm 06:46 PM

前言2018年8月22日,ApacheStrust2发布最新安全公告,ApacheStruts2存在远程代码执行的高危漏洞(S2-057/CVE-2018-11776),该漏洞由SemmleSecurityResearchteam的安全研究员ManYueMo发现。该漏洞是由于在Struts2开发框架中使用namespace功能定义XML配置时,namespace值未被设置且在上层动作配置(ActionConfiguration)中未设置或用通配符namespace,可能导致远程代码执行。同理,u

怎么进行Apache Struts2--048远程代码执行漏洞复现 怎么进行Apache Struts2--048远程代码执行漏洞复现 May 12, 2023 pm 07:43 PM

0x00简介Struts2框架是一个用于开发JavaEE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了JavaServletAPI,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。0x01漏洞概述ApacheStruts22.3.x系列启用了struts2-struts1-plugin插件并且存在struts2-showcase目录,其漏洞成因是当ActionMe

Struts2框架站点风险的示例分析 Struts2框架站点风险的示例分析 May 30, 2023 pm 12:32 PM

1.概述Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,后来成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller〔MVC〕设计模式的应用框架〔WebFramework〕,是MVC经典设计模式中的一个经典产品。在JavaEE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServerPages(JSP)的源代码中,采用HTM

CNNVD关于Apache Struts2 S2-057安全漏洞情况的通报示例分析 CNNVD关于Apache Struts2 S2-057安全漏洞情况的通报示例分析 May 11, 2023 pm 08:04 PM

目前,Apache官方已经发布了版本更新修复了该漏洞。建议用户及时确认ApacheStruts产品版本,如受影响,请及时采取修补措施。一、漏洞介绍ApacheStruts2是美国阿帕奇(Apache)软件基金会下属的Jakarta项目中的一个子项目,是一个基于MVC设计的Web应用框架。2018年8月22日,Apache官方发布了ApacheStruts2S2-057安全漏洞(CNNVD-201808-740、CVE-2018-11776)。当在struts2开发框架中启用泛namespace功

See all articles