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

medium Web App Scanning Plugin ID 113250

概要

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

說明

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

跨網站指令碼 (XSS) 弱點允許用戶端將指令碼插入要求中,並讓伺服器在回應中將指令碼傳回用戶端。發生此問題是因為應用程式會取得未受信任的資料 (在此範例中,是來自用戶端的資料) 並重複使用這些資料,而未執行任何驗證或清理。

如果插入的指令碼被立即傳回,這稱為反射型 XSS。如果插入的指令碼由伺服器儲存,並傳回至造訪受影響頁面的任何用戶端,則稱為持續型 XSS (亦即儲存式 XSS)。

掃描程式發現,使用者可將指令碼內容直接插入 HTML 元素內容中。

解決方案

若要解決 XSS 弱點,請勿在 HTML 頁面的程式碼中使用不受信任或未篩選的資料。
不受信任的資料不只源自用戶端,也可能源自第三方或先前上傳的檔案等。
篩選不受信任的資料通常涉及將特殊字元轉換為其 HTML 實體編碼對應項 (不過也有其他方法,請參閱參考資料)。這些特殊字元包括:
* `&` * `<` * `>` * `'` * `'` * `/`
將 `<` 轉換為 `<` 是 HTML 實體編碼的範例。
雖然可以篩選不受信任的輸入,但 HTML 頁面中有五個位置不應放置不受信任的輸入 (即使已經過篩選):
1. 直接在指令碼中放置。 2. 在 HTML 註解內放置。 3. 在屬性名稱中放置。 4. 在標籤名稱中放置。 5. 直接在 CSS 中放置。
這些位置中的每一個都有自己的逸出和篩選形式。
_因為許多瀏覽器會嘗試實作 XSS 保護,所以此發現的任何手動驗證都應使用多個不同的瀏覽器和瀏覽器版本執行。_

另請參閱

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

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

Plugin 詳細資訊

嚴重性: Medium

ID: 113250

類型: remote

已發布: 2022/6/28

已更新: 2023/2/22

掃描範本: full, 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

參考資訊