SharePoint 遠程代碼執行漏洞安全通告
發布時間 2019-03-29漏洞編號和級別
CVE編號:CVE-2019-0604,危險級別:高危, CVSS分值:7.8
影響版本:
Microsoft SharePoint Server 2019
Microsoft SharePoint Enterprise Server 2016
Microsoft SharePoint Foundation 2013 Service Pack 1
Microsoft SharePoint Server 2010 Service Pack 2
漏洞概述
SharePoint是微軟的一款團隊協作解決方案,用于團隊間共享和管理內容和知識。它使用ASP.NET開發,后端數據庫使用Microsoft SQL Server。
成功利用漏洞,可導致Windows系統服務器遠程執行命令,有可能完全控制服務器。
攻擊者可將精心構造的請求通過ItemPicker WebForm控件傳入后端EntityInstanceIdEncoder.DecodeEntityInstanceId(encodedId)方法中,因為方法沒有對傳入的encodedId進行任何處理,也沒有對XmlSerializer構造函數的類型參數進行限制,可直接通過XmlSerializer反序列化,造成命令執行。
要利用該漏洞,需要授權訪問SharePoint提供的管理網頁,授權賬戶可以是一個域賬戶。
漏洞細節
利用條件:
可授權訪問SharePoint提供的管理網頁,授權賬戶可以是一個域賬戶。
環境搭建:
? Windows server 2016
? ASP.NET相關組件
? Microsoft SQL Server
? SharePoint Server
安裝SharePoint前可以先運行prerequisiteinstaller 安裝SharePoint必備的組件,然后安裝Microsoft SQL Server,配置好賬戶。如果在單機上搭建SharePoint需要在此時將服務器切換為域控服務器,然后再建立域賬號安裝和部署SharePoint。本地賬號不符合SharePoint的部署要求。
漏洞分析:
來到ParseSpanData()中可以看出這里把表單提交的數據進行了處理。此處邏輯非常復雜,我們只跟對HiddenSpanData的處理:
在Validate()方法中,將m_listOrderTemp成員變量賦值給m_listOrder成員變量:
然后遍歷Entities的值調用ValidateEntity()方法:
Entities的值來自于上面的一行很不起眼的Lambda表達式方法,此方法將返回m_listOrder成員變量的值:
跟到ValidateEntity()方法發現是虛方法,因此去子類找方法的重寫。
安裝補丁KB4462211后再次反編譯,對比DecodeEntityInstanceId()方法的源碼,發現已經不再支持對象類型的反序列化。
漏洞利用
在漏洞分析時,我們在EntityInstanceIdEncoder類中看到另一個方法EncodeEntityInstanceId(),可以直接使用它生成Payload。
構造XML:
生成Payload:
生成Payload時會彈出一次計算器,關掉即可。
PoC:
修復建議
目前官方已推出相應補丁,請盡快升級進行修復。
Microsoft SharePoint Enterprise Server 2016
Security Update for Microsoft SharePoint Enterprise Server 2016(KB4462211)
https://www.microsoft.com/en-us/download/details.aspx?id=58072
Microsoft SharePoint Foundation 2013 Service Pack 1
Security Update for Microsoft SharePoint Enterprise Server 2013(KB4462202)
https://www.microsoft.com/en-us/download/details.aspx?id=58063
Microsoft SharePoint Server 2010 Service Pack 2
Security Update for 2010 Microsoft Business Productivity Servers(KB4462184)
https://www.microsoft.com/en-us/download/details.aspx?id=58066
Microsoft SharePoint Server 2019
Security Update for Microsoft SharePoint Server 2019 Core(KB4462199)
https://www.microsoft.com/en-us/download/details.aspx?id=58061
參考鏈接
https://www.thezdi.com/blog/2019/3/13/cve-2019-0604-details-of-a-microsoft-sharepoint-rce-vulnerability
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0604