DOM Invader

Reading time: 7 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

DOM Invader

DOM Invader 是一个安装在 Burp 内置浏览器中的浏览器工具。它通过各种源和接收器,包括网络消息和原型污染,帮助检测 DOM XSS 漏洞。该工具作为扩展预安装。

DOM Invader 在浏览器的 DevTools 面板中集成了一个选项卡,支持以下功能:

  1. 识别网页上可控的接收器以进行 DOM XSS 测试,提供上下文和清理细节。
  2. 记录、编辑和重新发送通过 postMessage() 方法发送的网络消息以进行 DOM XSS 测试。DOM Invader 还可以使用特别构造的网络消息自动检测漏洞。
  3. 检测 客户端原型污染 源并扫描发送到风险接收器的可控小工具。
  4. 识别 DOM clobbering 漏洞

启用它

在 Burp 的内置浏览器中,转到 Burp 扩展 并启用它:

现在刷新页面,在 Dev Tools 中你会找到 DOM Invader 选项卡:

注入金丝雀

在前面的图像中,你可以看到一个 随机字符组,即金丝雀。你现在应该开始在网页的不同部分(参数、表单、URL...)中 注入 它,并每次点击搜索。DOM Invader 将检查 金丝雀是否结束于任何有趣的接收器,可能被利用。

此外,选项 Inject URL params 和 Inject forms 将自动打开一个 新选项卡注入 每个找到的 URL 参数和 表单 中的 金丝雀

注入空金丝雀

如果你只是想找到页面可能存在的潜在接收器,即使它们不可利用,你可以 搜索一个空金丝雀

发送消息

DOM Invader 允许使用网络消息测试 DOM XSS,具有以下功能:

  1. 记录通过 postMessage() 发送的网络消息,类似于 Burp Proxy 的 HTTP 请求/响应历史记录日志。
  2. 修改重新发送 网络消息以手动测试 DOM XSS,类似于 Burp Repeater 的功能。
  3. 自动更改 和发送网络消息以探测 DOM XSS。

消息详情

通过点击每条消息,可以查看详细信息,包括客户端 JavaScript 是否访问了消息的 origindatasource 属性。

  • origin : 如果 消息的来源信息未检查,你可能能够从 任意外部域 向事件处理程序发送跨域消息。但如果进行了检查,仍然可能不安全。
  • data: 这是发送有效负载的地方。如果此数据未使用,则接收器无用。
  • source: 评估源属性,通常引用一个 iframe,是否经过验证而不是来源。即使进行了检查,也不能保证验证无法被绕过。

回复消息

  1. Messages 视图中,点击任何消息以打开消息详情对话框。
  2. 根据需要编辑 Data 字段。
  3. 点击 Send

原型污染

DOM Invader 还可以搜索 原型污染漏洞。首先,你需要启用它:

然后,它将 搜索源,使你能够向 Object.prototype 添加任意属性。

如果找到任何内容,将出现一个 Test 按钮以 测试找到的源。点击它,将出现一个新选项卡,在控制台中创建一个对象并检查 testproperty 是否存在:

javascript
let b = {}
b.testproperty

一旦你找到一个源,你可以扫描小工具

  1. 当点击扫描小工具按钮时,DOM Invader会在DOM视图中任何已识别的原型污染源旁边打开一个新标签。然后开始扫描合适的小工具。
  2. 与此同时,在同一标签中,DOM Invader标签应在DevTools面板中打开。扫描完成后,通过已识别的小工具访问的任何接收点将在DOM视图中显示。例如,下面的示例中显示了一个名为html的小工具属性被传递到innerHTML接收点。

DOM污染

在前面的图像中,可以看到可以开启DOM污染扫描。一旦完成,DOM Invader将开始搜索DOM污染漏洞

参考

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks