問題說明
缺少輸入驗證和輸出編碼而允許插入 JavaScript,導致反映跨網站指令碼 (XSS)。
反映跨網站指令碼可用來將任意 JavaScript 插入 Microsoft System Center 2016「已驗證的」頁面。 還可以攔截下列 GET 要求並修改 SpaceID,以將任意字串插入 Web 主控台的左側導覽窗格。
GET/OperationsManager/InternalPages/NavigationTree.aspx?SpaceId=1002&ViewId=Favorites_Overview HTTP/1.1
任意字串的範例如下:
abc%3E%3C","00000000-0000-0000-0000-000000000000");alert(1);//%3E
一旦插入惡意 JavaScript,即可修改目前的頁面行為並傳遞:特洛伊木馬程式、強制惡意重新導向、內容詐騙、鍵盤記錄木馬程式、內容洩漏、VIEWSTATE 和驗證程式權杖洩漏 (使反 CSRF 控制項無效) 等。
攻擊由下列步驟構成
-
攻擊者使用 XSS 承載製作 System Center 已驗證的特定 GET 要求,然後引誘受害者存取特殊 URL 或引誘使用者存取網路釣魚詐騙郵件,以觸發特定要求。
-
已驗證的受害者載入/重新載入首頁。
注意: 攻擊適合針對任何 viewID 值和具有 SpaceID 查詢字串參數的每個要求進行。
測試案例
預期結果: 無效的 SpaceID 錯誤或空的窗格,而且未執行隨機 JavaScript
結果: 執行任意 JavaScript。
解決方案
實作嚴格的輸入驗證。 SpaceID 只接受整數,因此針對輸入檢查資料類型,足以修復此弱點。
我們已新增一項檢查,以確保 SpaceID 只會有支援的值 (1001 和 1002),否則樹狀結構中的資料是空的。
參考
請參閱 CVE-2020-1331 上的資訊安全指引諮詢。
安全性分類
反映跨網站指令碼,內容詐騙