DOM 型跨網站指令碼 (XSS) 弱點

medium Web App Scanning Plugin ID 98109

概要

DOM 型跨網站指令碼 (XSS) 弱點

說明

現代 Web 應用程式廣泛使用用戶端指令碼,用於執行從簡單功能 (例如文字格式化) 到用戶端資料和作業系統互動的完整操控。

在傳統的跨網站指令碼 (XSS) 攻擊中,用戶端可將指令碼插入要求中,並讓伺服器將指令碼傳回用戶端,但 DOM XSS 攻擊不需要將要求傳送至伺服器,因此可能在載入的頁面中遭到完全濫用。

當攻擊者能夠操控 DOM 的元素 (稱為「來源」) 以包含不受信任的資料,而用戶端指令碼 (稱為「接收器」) 以不安全的方式使用或執行時,會發生這種情況。

掃描程式發現,藉由將 HTML 元素插入頁面的 DOM 輸入 (來源) 中,可以讓接收器將該 HTML 元素轉譯為頁面的一部分。

解決方案

應盡可能避免使用未受信任資料的用戶端文件重寫、重新導向或其他敏感動作,因為伺服器端篩選可能無法檢查這些動作。
若要在必須使用這些敏感文件動作的情況下解決 DOM XSS 弱點,必須做到下面兩項:
1. 確保將任何未受信任的資料視為文字,而不是將其解譯為頁面內的程式碼或標記。2. 在頁面內使用不受信任的資料之前,將這些資料逸出。逸出方法根據使用未受信任資料的位置而有所不同。(如需詳細資訊,請參閱參考資料。) 3. 使用 `document.createElement`、`element.setAttribute`、`element.appendChild` 等來構建動態介面,而不是使用 HTML 轉譯方法,例如 `document.write`、`document .writeIn`、`element.innerHTML` 或 `element.outerHTML`等。

另請參閱

http://projects.webappsec.org/w/page/13246920/Cross%20Site%20Scripting

https://www.owasp.org/index.php/DOM_Based_XSS

https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet

Plugin 詳細資訊

嚴重性: Medium

ID: 98109

類型: remote

已發布: 2017/3/31

已更新: 2023/8/29

掃描範本: pci, scan

風險資訊

VPR

風險因素: Medium

分數: 4.2

CVSS v2

風險因素: Medium

基本分數: 5.8

媒介: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:N

CVSS 評分資料來源: Tenable

CVSS v3

風險因素: Medium

基本分數: 6.1

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

CVSS 評分資料來源: Tenable

參考資訊