Microsoft SharePoint远程代码执行漏洞(CVE-2020-16952)
北京时间2020年10月14日,微软MSRC发布了Microsoft SharePoint服务器的远程代码执行漏洞CVE-2020-16952的公告,且漏洞的详细利用过程于当日被公开。深信服安全研究团队依据漏洞重要性和影响力进行评估,发布漏洞通告。
漏洞分析
相关组件介绍
SharePoint Server是由微软公司开发的一个适用于企业的门户站点服务器,能够无缝连接到用户。让每个项目工作组、部门和科室实现团队协作。共享文件、数据、资讯和资源。前端是一个运行于Internet Information Services 6.0之上的ASP.NET 网站,后端由SQL Server或者MSDE来存储数据。
漏洞利用大体流程
首先通过put方式可以上传用于泄露信息的poc.aspx文件,然后通过特定的请求泄露出ValidationKey(web中配置ASP.NET应用程序的密钥)。当.Net开启ViewState MAC验证时,需要通过提供ValidationKey来进行身份验证。最后发送附带泄露出的ValidationKey的特定请求,即可执行命令。
漏洞成因
反编译Microsoft.SharePoint.WebPartPages.DataFormWebPart代码,可以观察到CreateChildControls函数。函数的以下代码为处理EnsureDataBound的逻辑:
该代码执行数据绑定并从数据源访问数据。返回的数据必须是有效的xml,以便可以通过攻击者精心设计的xslt处理。
接下来在DataFormWebPart.RunatChecker.IsMatch的代码处,检查在xml中`runat = server`的实例。
之后在下面的代码中,由于错误地调用`VerifyControlOnSafeList`,用户可以将包含有效的xml填充到_partContent中:
然后通过ParseControl进行解析:
然后通过以下的代码添加到页面中
原创文章,作者: Admin ,转载请注明出处:https://secvery.com/3537.html