`

struts2 漏洞分析与防护方案 CVE-2017-5638 S2-045 除了升级外还是有修复方案的

阅读更多
【IT168 评论】关注网络安全的朋友们,想必最近两天已经被一个高危漏洞刷屏,其来势汹汹让不少网络安全圈内人士咋舌。近日,多家网络安全公司发现并曝光了全球最为流行的Java Web服务器框架之一的Apache Struts2存在漏洞。而这一漏洞最终也被Struts2官方确认,其漏洞编号为S2-045,CVE编号:cve-2017-5638,并将其定级为高危漏洞。

Apache Struts2的Jakarta Multipart parser插件存在远程代码执行漏洞,漏洞编号为CNNVD-201703-152。攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。

相关链接如下:
https://cwiki.apache.org/confluence/display/WW/S2-045?from=timeline&isappinstalled=0

引用
影响的版本
Struts 2.3.5 - Struts 2.3.31
Struts 2.5 - Struts 2.5.10


引用
不受影响的版本
Struts 2.3.32
Struts 2.5.10.1



官方解决方案

官方已经发布了版本更新,建议用户升级到不受影响的最新版本(Struts2 2.3.32或Struts 2.5.10.1),下载链接如下所示:

Struts 2.3.32:
https://github.com/apache/struts/releases/tag/STRUTS_2_3_32

Struts 2.5.10.1:
https://github.com/apache/struts/releases/tag/STRUTS_2_5_10_1

临时修复方案

在用户不便进行升级的情况下,作为临时的解决方案,用户可以进行以下操作来规避风险:
修改Web-INF/classes目录下的struts.xml中的配置

在Web-INF/classes目录下的struts.xml 中的struts 标签下添加
<constant name="struts.custom.i18n.resources" value="global" />


在WEB-INF/classes/ 目录下添加 global.properties,文件内容如下
struts.messages.upload.error.InvalidContentTypeException=1


配置过滤器过滤Content-Type的内容
在web应用的web.xml中配置过滤器,在过滤器中对Content-Type内容的合法性进行检测:

public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		String contentType = request.getContentType().toLowerCase(
				Locale.ENGLISH);
		if (contentType != null && contentType.contains("multipart/form-data")
				&& !contentType.startsWith("multipart/form-data")) {
			response.getWriter().write("Reject!");
		} else {
			chain.doFilter(request, response);
		}

	}


转:http://toutiao.secjia.com/struts2-vulnerability-analysis-and-protection-cve-2017-5638
分享到:
评论

相关推荐

    struts2 漏洞 "cve-2017-5638" 研究文档

    这一漏洞被官方确认并赋予漏洞编号S2-045,CVE编号为cve-2017-5638,被定级为高风险。此漏洞主要影响以下版本的Struts2: - Struts 2.3.5 至 Struts 2.3.31 - Struts 2.5 至 Struts 2.5.10 由于该漏洞的危害程度极...

    CVE-2017-3506-Poc.zip_CVE-2017-3506_CVE-2017-3506 poc_CVE-2017-3

    **CVE-2017-3506:Apache Struts2远程代码执行漏洞** Apache Struts2是一款广泛使用的开源Web应用框架,它为开发者提供了一种构建基于MVC(Model-View-Controller)模式的Java Web应用程序的方式。在2017年,Apache...

    S2-045 struts2-core-2.3.32.jar 相关jar包,测试可用

    目前Struts2官方已经确认漏洞(漏洞编号S2-045,CVE编号:cve-2017-5638),并定级为高危风险。 该漏洞的影响范围:Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10。 修复方式:更新至Struts 2.3.32...

    struts2安全漏洞修复

    1. CVE-2017-5638(Struts2 S2-045):这是一个严重影响的远程代码执行漏洞,它允许攻击者通过恶意构造的HTTP请求头来执行任意代码。该漏洞是由于OGNL(Object-Graph Navigation Language)表达式处理不当导致的。 ...

    Struts终极漏洞利用工具

    1. **CVE-2017-5638:Struts2 S2-045漏洞**:这是一个远程代码执行漏洞,由于OGNL(Object-Graph Navigation Language)表达式处理不当,攻击者可以通过精心构造的HTTP请求头注入恶意代码,导致服务器被控制。...

    2.3.15.1 版本以前 struts2漏洞利用工具 和升级到2.3.15.1版本

    首先,Struts2漏洞中最著名的可能是S2-045(CVE-2017-5638),这是一个远程代码执行(RCE)漏洞,允许攻击者通过精心构造的HTTP请求头注入恶意代码并执行。这个漏洞影响了Struts2的显示标签库,使得恶意用户可以绕过...

    struts2 漏洞利用工具.rar

    在Struts2的生命周期中,一个关键的漏洞是CVE-2017-5638,通常被称为S2-045或"Struts Shatter"漏洞。这个漏洞源于Struts2的Jakarta插件对OGNL(Object-Graph Navigation Language)表达式处理不当,允许攻击者通过...

    Struts2漏洞专检工具

    1. **CVE-2017-9791(S2-045)**:这是一个远程代码执行漏洞,由于OGNL(Object-Graph Navigation Language)表达式处理不当,攻击者可以构造特定请求,执行任意系统命令。 2. **CVE-2016-1000031(S2-048)**:这...

    Struts2漏洞利用工具

    首先,我们要了解Struts2中最著名的漏洞之一——CVE-2017-5638,这是一个严重的远程代码执行漏洞。攻击者可以通过精心构造的HTTP请求头,使Struts2的S2-045或S2-048等插件解析恶意的OGNL表达式,从而在服务器端执行...

    struts2目前无漏洞的版本

    1. **CVE-2017-9805**:这是Struts2最臭名昭著的一个漏洞,被称为S2-045或Struts Shatter。它允许远程攻击者通过HTTP头部字段注入恶意代码,导致任意命令执行。这个漏洞影响了多个Struts2的版本,但2.5.13已经对其...

    struts2漏洞利用工具

    3. **CVE-2016-1000031**:这个漏洞出现在Struts2的S2-045中,涉及Struts2的FreeMarker模板引擎。攻击者可以利用此漏洞,通过发送特定的HTTP请求,触发远程代码执行。 4. **CVE-2013-2261**:这是早期的一个Struts2...

    最新struts2漏洞检测工具(有毒,在虚拟机打开)

    Struts2漏洞中最著名的是S2-045(CVE-2017-5638),这是一个远程代码执行漏洞,攻击者可以通过构造恶意HTTP请求来利用此漏洞,执行任意系统命令。这个漏洞影响了Struts2的众多版本,使得许多未更新的系统面临风险。...

    struts-2.3.32所需jar包

    s2-045漏洞,也称为“Apache Struts2远程代码执行漏洞”(CVE-2017-5638),是一个严重的问题,它允许攻击者通过发送恶意构造的HTTP请求到服务器,从而执行任意的远程代码。这个漏洞存在于使用OGNL(Object-Graph ...

    2016最新struts2漏洞利用工具无后门版(K8 Struts2 Exploit)

    然而,2016年,Struts2曝出了一系列高危安全漏洞,其中最为知名的便是S2-045(CVE-2016-1000031)和S2-048(CVE-2016-10179)。这些漏洞允许攻击者通过精心构造的HTTP请求,远程执行任意代码,对服务器造成严重威胁...

    Struts2安全漏洞实用

    1. **Struts2安全漏洞概述**:介绍Struts2框架常见的安全问题,如CVE-2017-5638(S2-045)等高危漏洞。 2. **漏洞成因**:解释漏洞是如何产生的,例如通过不安全的OGNL表达式或者不正确的配置。 3. **漏洞影响**:...

    Struts2 漏洞利用

    然而,Struts2在历史上存在一系列的安全漏洞,其中最臭名昭著的是S2-045、S2-016等。这些漏洞允许攻击者通过精心构造的HTTP请求来执行任意代码,严重威胁到应用的安全性。 描述中的"2013 7.17 看下POC 搞几个关键字...

    struts2的漏洞

    1. **CVE-2017-5638(Struts2 S2-045)** 这是Struts2历史上最臭名昭著的漏洞之一,它允许攻击者通过恶意构造的HTTP头注入任意的OGNL(Object-Graph Navigation Language)表达式,从而执行远程代码。这个漏洞影响...

    struts2-057扫描工具

    1. 及时更新:确保Struts2框架及其依赖的库都升级到最新版本,修复已知漏洞。 2. 配置审查:检查并完善应用的配置,避免启用不必要的动态方法调用。 3. 输入验证:对所有用户输入进行严格的验证和过滤,减少恶意数据...

    Struts2 s2-032远程代码执行分析1

    Struts2 s2-032 远程代码执行漏洞是一个严重的安全问题,涉及到的是Apache Struts2框架的一个核心功能,即动态方法调用。这个漏洞发生在2016年4月15日,被安恒安全研究院发现,并被CVE(Common Vulnerabilities and ...

Global site tag (gtag.js) - Google Analytics