文档域操作(基于DOM的存储)
描述:文档域操作(基于DOM的存储)
当存储用户输入并随后嵌入DOM的一部分中,然后将基于DOM的漏洞存储在该响应中,然后通过客户端脚本以不安全的方式处理该响应。攻击者可以利用数据存储来控制响应的一部分(例如,JavaScript字符串),可用于触发基于DOM的漏洞。
当脚本使用可控数据设置文档属性时,就会出现文档域操作。攻击者可能能够使用漏洞来构建一个URL,如果另一个应用程序用户访问该URL,将导致响应页面设置一个任意文档。
浏览器在执行相同的原始策略时使用了Document.Domain属性。如果来自不同原始的两个页面明确设置了相同的文档。如果攻击者可以引起目标应用程序的页面,以及他们控制的另一页(直接或通过XSS样漏洞)设置相同的文档。通过他们已经控制的页面申请页面,其开发可能性与常规跨站点脚本(XSS)漏洞相同。
浏览器通常会对可以分配给文档的值进行一些限制,并可能阻止使用与页面的实际来源完全不同的值。但是,这有两个重要的警告。首先,浏览器允许使用子或父域,因此攻击者可能能够将目标应用程序的域切换到具有较弱的安全姿势的相关应用程序的域。其次,一些浏览器怪异使切换到完全无关的域。这些警告意味着操纵文档的能力。页面的域属性通常表示安全漏洞,其严重性不远落后于常规XSS。
Burp Suite会使用静态代码分析自动识别此问题,这可能会导致实际上并非可利用的误报。应审查相关的代码和执行途径,以确定是否确实存在此漏洞,或者是否存在缓解能力以阻止剥削。
修复:文档域操作(基于DOM的存储)
避免基于DOM的文档域操作漏洞的最有效方法不是动态设置文档。使用源自任何不受信任源的数据域属性。如果有必要从客户端代码内部编程设置文档。Domain属性,则该应用程序应采用可接受值的集合列表,并仅从该列表中的值分配。
参考
脆弱性分类
典型的严重程度
中等的
类型索引(HEX)
0x00501102
类型索引(十进制)
5247234