【漏洞预警】Apache Struts2 远程代码执行漏洞S2-046

匿名者  2796天前

【漏洞预警】Apache Struts2 最新远程代码执行漏洞S2-046

       近日Apache Struts2被爆存在远程代码执行漏洞,漏洞编号S2-046,CVE编号CVE-2017-5638,与S2-045属于相同漏洞,只是该漏洞的攻击向量不同。该漏洞目前Struts官网已经确认,并定性为等级为高。现在网络上已经出现的漏洞利用工具出现,请各位站长朋友立即修复。以免造成不必要的影响和损失。如果S2-045升级后的Sturts2最新版本,则该漏洞不受影响。

       Struts2是一个基于MVC设计模式的Web应用框架,struts2在国内外一种流行的java框架。目前国内使用Struts2框架较多的主要覆盖面积集中在金融,政府,电商等大型行业。根据FOFA系统统计显示,目前使用Struts2框架的网站全球共有约104万,其中国内占了约4分之一。


struts1.png

struts2.png

Struts2 全球分布情况(仅为对外开放情况,非漏洞影响)


struts3.png

struts4.png

Struts2中国分布情况(仅为对外开放情况,非漏洞影响)

 2.漏洞描述与危害

       通过Jakarta 文件上传插件,恶意用户可在上传文件时通过修改HTTP请求头中的Content-Disposition来触发该漏洞,进而执行系统命令,获取服务器权限。该漏洞易造成敏感数据泄露、网页篡改、系统被黑客入侵等严重危害。并且该插件属于Struts2核心默认自带插件.

 3.漏洞分析

        该漏洞与S2-045漏洞相似,只是该漏洞的攻击向量不同。在HTTP的请求头“Content-Disposition”中加入null字节(‘\x00’),并在文件名中中构造可以恶意的OGNL内容,触发InvalidFileNameException异常导致代码被执行。(注:在官方的说明中需要修改HTTP头部中的Content-Length,但在白帽汇的安全工程师实际漏洞测试中,并没有修改Content-Length 为大于2GB的值,也测试成功。白帽汇安全工程师还在进一步研究中。)

4.漏洞影响

目前受影响的Struts版本(目前针对S2-045进行升级后的程序,该漏洞不受影响):

Struts2.3.5 - Struts 2.3.31

Struts 2.5 - Struts 2.5.10

5.影响范围

        白帽汇第一时间对漏洞进行复现,稍后更新全网受影响范围,目前国内使用Struts2框架较多的主要覆盖面积集中在金融,政府,电商等大型行业。该漏洞影响范围很广,危害度较高, 截止到目前已经发现互联网有部分渠道已经公开poc,可能有攻击者正在进行批量攻击扫描。

6.PoC

      目前FOFA客户端PoC商城已经有此PoC,企业可以利用该PoC去进行安全检测。PoC和测试结果如下。(注:在官方的说明中需要修改HTTP头部中的Content-Length,但在白帽汇的安全工程师实际漏洞测试中,并没有修改Content-Length 为大于2GB的值,也测试成功。白帽汇安全工程师还在进一步研究中。)

Clipboard Image.png


struts5.png7.CVE编号

   CVE-2017-5638

8.修复建议

1、请升级到最新的ApacheStruts2.3.32或2.5.10.1版本。

http://struts.apache.org/download.cgi#struts2510

2. 严格过滤 Content-Type 、filename里的内容,严禁ognl表达式相关字段。

白帽汇会持续对该漏洞进行跟进。

参考

[1] https://cwiki.apache.org/confluence/display/WW/S2-046

[2] https://github.com/pwntester/S2-046-PoC

[3] http://struts.apache.org/docs/s2-046.html

北京白帽汇科技有限公司是一家专注于安全大数据、企业威胁情报,为企业提供尖端安全产品和服务的一家高科技互联网企业。

公司产品包括:EWSIS-企业web安全监控系统、ETSS-企业威胁感知系统、ANDERSEN-企业威胁感知平台(SAAS)、NOSEC-大数据安全协作平台。

可为企业提供:网站安全监控、企业资产收集、漏洞扫描、安全日志分析、员工邮箱泄露监测、企业威胁情报、应急响应、安全代维等解决方案和服务。

 

最新评论

昵称
邮箱
提交评论