基于 DOM 的跨站脚本 (XSS)

medium Web App Scanning 插件 ID 98109

简介

基于 DOM 的跨站脚本 (XSS)

描述

现代 Web 应用程序广泛使用客户端脚本。此类应用程序会执行从简单的功能(例如文本格式化)到完全操纵客户端数据和操作系统交互等操作。

传统的跨站脚本 (XSS) 漏洞是客户端在请求中注入脚本,然后服务器就会将脚本返回给客户端,而 DOM XSS 与此不同,它不需要向服务器发送请求,完全可以在加载的页面中滥用。

当 DOM 的元素(称为源)能够被操纵以包含客户端脚本(称为接收器)以不安全的方式使用或执行的不受信任数据时,会发生此问题。

扫描程序已发现,在页面的 DOM 输入(源)中插入 HTML 元素后,接收器可随后将 HTML 元素渲染为页面的一部分。

解决方案

应尽可能避免使用不受信任的数据进行客户端文档重写、重定向或其他敏感操作,因为服务器端筛选可能不会检查这些操作。
如要在必须使用这些敏感文档操作的情况下修补 DOM XSS 漏洞,就必须:
1. 确保将任何不受信任的数据视为文本,而不是解释为页面内的代码或标记。2. 在页面内使用不受信任的数据前对其进行转义。转义方法因使用不受信任数据的位置而异。(有关详细信息,请参阅“参考”)3. 使用 `document.createElement`、 `element.setAttribute`、`element.appendChild` 等构建动态界面,而不是 `document.write`、`document.writeIn`、`element.innerHTML` 或 `element.outerHTML ` 等 HTML 渲染方法。

另见

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

插件详情

严重性: 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

CVSS v4

风险因素: Medium

Base Score: 5.1

Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

CVSS 分数来源: Tenable

参考资料信息