hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md

7.2 KiB
Raw Blame History

DOM Invader

零基础学习AWS黑客攻击直至成为专家 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式

DOM Invader

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

DOM Invader在浏览器的DevTools面板中集成了一个标签页使能以下功能

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

启用它

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

现在刷新页面,在Dev Tools中你会找到DOM Invader标签页

注入一个Canary

在上图中你可以看到一个随机字符组那是Canary。你现在应该开始注入它在网页的不同部分参数、表单、URL...每次点击搜索它。DOM Invader将检查canary是否结束在任何有趣的汇中,这些汇可能被利用。

此外,注入URL参数和注入表单的选项将自动打开一个新标签页注入canary在它找到的每个URL参数和表单中。

注入一个空的Canary

如果你只想找到页面可能有的潜在汇,即使它们不可利用,你可以搜索一个空的canary

Post消息

DOM Invader允许使用web消息测试DOM XSS功能包括

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

消息详情

你可以点击每条消息查看更多关于它的详细信息包括客户端JavaScript是否访问了消息的origindatasource属性。

  • origin:如果消息的来源信息没有检查,你可能能够从任意外部域发送跨域消息到事件处理器。但即使检查了,它仍然可能不安全。
  • data:这是发送有效载荷的地方。如果这些数据没有被使用,汇就没用。
  • source评估是否验证了通常引用iframe的source属性而不是origin。即使这被检查了也不能保证验证不能被绕过。

回复一条消息

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

原型污染

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

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

如果找到了任何东西,一个测试按钮将出现以测试找到的源。点击它,一个新标签页将出现,在控制台创建一个对象并检查是否存在testproperty

let b = {}
b.testproperty

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

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

DOM 篡改

在前面的图片中可以看到DOM 篡改扫描可以被打开。一旦完成,DOM Invader 将开始搜索 DOM 篡改漏洞

参考资料

通过 htARTE (HackTricks AWS Red Team Expert)从零到英雄学习 AWS 黑客攻击!

支持 HackTricks 的其他方式: