Umbraco CMS中的高风险C#安全漏洞

DefenseCode的安全研究团队在Umbraco CMS中发现了一个潜在的高风险漏洞。

Umbraco CMS易受任意文件上传漏洞的攻击,该漏洞可导致远程代码执行(取决于服务器配置)和存储的跨站点脚本(Stored Cross-Site Scripting )漏洞。

Umbraco CMS是一个功能齐全的开放源码内容管理系统,它具有足够的灵活性,可以处理从小型活动和电子宣传册到财富500强企业(包括世界上最大的媒体组织)的复杂应用程序的任何内容。全世界有超过500000个网站在使用它。

Umbraco CMS主要用C#编写,将数据存储在关系数据库(通常是Microsoft SQL Server)中,并调用Umbraco CMS的Microsoft IIS(互联网信息服务)。

漏洞描述

在分析Umbraco CMS源代码时我们使用了DefenseCode ThunderCan®SAST,默认扫描配置。DefenseCode Thundercan®是一个SAST(静态应用程序安全测试,白盒测试)解决方案,用于对应用程序源代码执行广泛的安全审计。Thundercan®对大型复杂的源代码项目执行快速而深入的精确分析,提供精确的结果和较低的误报率。

      ThunderScan® 在Umbraco CMS代码段检测出漏洞:

      

       上述逻辑与用户个人信息内的上传头像有关(源代码:/src/Umbraco.Web/Editors/UsersController.cs)

ThunderScan的默认扫描配置没有考虑账户自定义的输入的清理(Sanitization)方法,例如ToSafeFileName()——这是一个字符串扩展方法,用于防止可以造成路径遍历攻击的任何文件名操作——或者使用DisallowedUploadedFiles列表的文件扩展名黑名单检查。

然而,防止潜在危险文件的黑名单方法促使对应用程序逻辑进行更深入的检查。不允许扩展名的默认列表定义在umbracoSettings.config文件中:

<disallowedUploadFiles>ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,swf,xml,xhtml,html,htm, php,htaccess </disallowedUploadFiles>

由于这种方法,攻击者可以解析为扩展名,如.wsdl、.xsl、.xsd和其他基于XML的文件类型,这些文件类型将由Microsoft IIS内联提供,并且可以包含可由受害者浏览器执行的恶意JavaScript代码,从而在Umbraco CMS的默认部署中有效地执行存储的跨站点脚本(Stored Cross-Site Scripting)攻击。

跨站脚本攻击(XSS)是一种注入类型的攻击,恶意脚本被注入到良性和可信的网站。XSS攻击发生时,攻击者使用一个Web应用向不同的终端用户发送恶意代码,恶意代码的形式通常是浏览器端脚本。听任这些攻击成功的缺陷是非常普遍的,发生在Web应用程序在其生成的输出中使用了用户输入而未经验证或编码的任何地方。

攻击者可以使用XSS向不知情的用户发送恶意脚本。最终用户的浏览器无法得知脚本不应被信任而将会执行该脚本,由于它认为脚本来源可信,所以恶意脚本能够访问被浏览器保留并与该站点一起使用的任何Cookie、会话令牌或其他敏感信息。这些脚本甚至能够重写HTML页面的内容。

这一点可以在Umbraco CMS上在线验证,向/umbraco/backoce/UmbracoApi/Users/PostSetAvatar?id=1终端提交POST上传请求。用于概念验证(POC)的文件扩展名.xsdl,包含以下内容:

 

<defensecode:script xmlns:defensecode="http://www.w3.org/1999/xhtml"> alert('XSS')
</defensecode:script>

        访问上传文件的URL时执行的概念验证JavaScript如下所示:

 

如果服务器支持经典ASP,上载.asp文件可能导致远程代码执行。这种情况并不少见,因为需要支持托管在同一服务器上的遗留应用程序。对于启用了WCF服务的HTTP激活功能的服务器也可以这样说,其中.xamlx文件上载将用于相同的攻击。

该漏洞已于2020年11月22日向供应商报告,当时Umbraco CMS的最新版本为8.8.2版。该报告已于2020年11月25日被Umbraco安全团队确认。在默认值中只添加了一个潜在危险的扩展不允许的扩展列表:xamlx

这使得最新版本(8.12.1,在本博客发布时)仍然容易受到存储的跨站点脚本攻击,以及通过经典ASP文件执行潜在的远程代码

更多信息请访问:http://www.softtest.cn/show/44.html

posted @ 2021-04-23 16:17  旋极智能  阅读(343)  评论(0编辑  收藏  举报