跨站点脚本(基于DOM)
描述:跨站点脚本(基于DOM)
当客户端脚本从DOM的可控部分读取数据并以不安全的方式处理此数据时,就会出现基于DOM的漏洞。
当脚本以不安全的方式将可控数据写入HTML文档时,会出现基于DOM的跨站点脚本。攻击者可能能够使用漏洞来构建一个URL,如果另一个应用程序用户访问该URL,则会导致攻击者提供的JavaScript代码在用户与应用程序的会话的上下文中在用户的浏览器中执行。
攻击者提供的代码可以执行各种各样的动作,例如窃取受害者的会议令牌或登录凭据,代表受害者执行任意行动,并记录其击键。
可以诱使用户以各种方式访问攻击者精心设计的URL,类似于通常的攻击交付向量,以进行反射的跨站点脚本漏洞。
Burp Suite会使用动态和静态代码分析自动识别此问题。静态分析会导致实际上无法利用的误报。如果BURP扫描仪未提供动态分析产生的任何证据,则应查看相关的代码和执行途径,以确定是否确实存在此漏洞,或者是否存在缓解措施以阻止剥削。
修复:跨站点脚本(基于DOM)
避免基于DOM的跨站点脚本漏洞的最有效方法不是将来自任何不信任源的数据动态写入HTML文档。如果应用程序的所需功能意味着此行为是不可避免的,则必须在客户端代码中实施防御,以防止恶意数据将脚本代码引入文档。在许多情况下,相关数据可以在白名单的基础上进行验证,以允许仅允许已知安全的内容。在其他情况下,有必要对数据进行消毒或编码。这可能是一项复杂的任务,根据要插入数据的上下文,可能需要涉及JavaScript Escaping,HTML编码和URL编码的组合。
参考
脆弱性分类
- CWE-79:网页生成期间输入的中和不当(“跨站点脚本”)beplay体育能用吗
- CWE-80:网页中与脚本相关的HTML标签的中和不当(基本XSS)beplay体育能用吗
- CWE-116:输出的编码不当或逃脱
- CWE-159:未能消毒特殊元素
- CAPEC-588:基于DOM的XSS
典型的严重程度
高的
类型索引(HEX)
0x00200310
类型索引(十进制)
2097936