DOM Invader
DOM Invader
DOM Invader 是一个安装在 Burp 内置浏览器中的浏览器工具。它通过各种来源和接收点(包括网络消息和原型污染)来检测 DOM XSS 漏洞。该工具作为扩展预安装。
DOM Invader 在浏览器的 DevTools 面板中集成了一个选项卡,支持以下功能:
识别网页上的可控接收点,用于 DOM XSS 测试,提供上下文和清理细节。
记录、编辑和重新发送通过
postMessage()
方法发送的网络消息,用于 DOM XSS 测试。DOM Invader 还可以使用特别构造的网络消息自动检测漏洞。检测 客户端原型污染 来源,并扫描发送到风险接收点的可控小工具。
识别 DOM 覆盖漏洞。
启用它
在 Burp 的内置浏览器中,转到 Burp 扩展 并启用它:
现在刷新页面,在 Dev Tools 中你会找到 DOM Invader 选项卡:
注入一个 Canary
在前面的图像中,你可以看到一个 随机字符组,这就是 Canary。你现在应该开始在网页的不同部分(参数、表单、URL...)中 注入 它,并每次点击搜索。DOM Invader 将检查 canary 是否结束于任何有趣的接收点,可能被利用。
此外,选项 Inject URL params 和 Inject forms 将自动打开一个 新选项卡,注入 每个找到的 URL 参数和 表单 中的 canary。
注入一个空的 Canary
如果你只想找到页面可能存在的潜在接收点,即使它们不可利用,你可以 搜索一个空的 canary。
发送消息
DOM Invader 允许使用网络消息测试 DOM XSS,具有以下功能:
记录通过
postMessage()
发送的网络消息,类似于 Burp Proxy 的 HTTP 请求/响应历史记录日志。修改 和 重新发送 网络消息以手动测试 DOM XSS,类似于 Burp Repeater 的功能。
自动更改 和发送网络消息以探测 DOM XSS。
消息详情
通过点击每条消息,可以查看详细信息,包括客户端 JavaScript 是否访问了消息的 origin
、data
或 source
属性。
origin
: 如果 消息的来源信息未检查,你可能能够从 任意外部域 向事件处理程序发送跨域消息。但如果进行了检查,仍然可能不安全。data
: 这是发送有效负载的地方。如果此数据未使用,则接收点无用。source
: 评估源属性,通常引用一个 iframe,是否经过验证而不是来源。即使进行了检查,也不能保证验证无法被绕过。
回复消息
从 消息 视图中,点击任何消息以打开消息详情对话框。
根据需要编辑 数据 字段。
点击 发送。
原型污染
DOM Invader 还可以搜索 原型污染漏洞。首先,你需要启用它:
然后,它将 搜索来源,使你能够向 Object.prototype
添加任意属性。
如果找到任何内容,将出现一个 测试 按钮以 测试找到的来源。点击它,将出现一个新选项卡,在控制台中创建一个对象并检查 testproperty
是否存在:
一旦你找到一个源,你可以扫描小工具:
当点击扫描小工具按钮时,DOM Invader会在DOM视图中任何已识别的原型污染源旁边打开一个新标签。然后开始扫描合适的小工具。
与此同时,在同一标签中,DOM Invader标签应在DevTools面板中打开。扫描完成后,通过已识别的小工具访问的任何接收点将在DOM视图中显示。例如,下面的示例中显示了一个名为
html
的小工具属性被传递到innerHTML
接收点。
DOM覆盖
在前面的图像中,可以看到DOM覆盖扫描可以被启用。一旦完成,DOM Invader将开始搜索DOM覆盖漏洞。
参考
Last updated