专业的社区

测试客户端原型污染

  • 最近更新时间:2022年7月1日

  • 阅读时间:3分钟

DOM Invader提供了许多功能,可帮助您测试客户端原型污染漏洞。这些使您能够执行以下关键任务:

  • 自动检测到URL中原型污染和通过Web消息发送的任何JSON对象的原型污染的来源。beplay体育能用吗这包括使用相同源检测替代技术。

  • 通过污染Object.Prototype使用任何发现的来源。然后,您可以通过浏览器控制台手动验证漏洞。

  • 扫描您可以用来制作利用的潜在小工具。

实现原型污染

为了避免干扰目标站点的功能,DOM Invader的原型污染功能默认情况下是禁用的。启用这些功能:

  1. 转到DOM Invader设置菜单。

  2. 切换开关以便原型污染正在启用

  3. 点击重新加载刷新浏览器。这对于您的更改生效是必要的。

在DOM Invader中启用原型污染

现在,当您浏览时,Dom Invader现在扫描原型污染源。

检测原型污染的来源

启用原型污染后,DOM Invader会自动检查该页面的资源,使您能够将任意属性添加到Object.Prototype。它标识的任何来源都显示在dom查看,以及一些有用的信息和功能,以进行进一步测试。

检测原型污染的来源

在此示例中,DOM Invader已经确定了两种污染的潜在技术Object.Prototype使用位置资源。

手动确认原型污染的来源

一旦Dom Invader确定了原型污染的潜在来源,它还可以帮助您手动确认这一点。

手动测试是否可以通过此源来测试原型污染:

  1. 来自dom查看,单击测试相关源旁边的按钮。Dom Invader打开一个新选项卡,其中使用选定的源将任意属性添加到Object.Prototype

  2. 在新标签中,转到浏览器控制台。请注意,Dom Invader已自动输出Object.Prototype

  3. 扩展节点以确认该对象包含概念验证TestProperty

    使用POC属性污染对象。
  4. 在控制台中,创建一个新对象:

    令MyObject = {};
  5. 确认您的新对象已继承TestProperty通过原型链:

    console.log(myobject.testproperty);//输出:'dom_invader_pp_poc'

扫描原型污染小工具

除非您还可以访问“小工具”属性,否则原型污染源是无用的。这是任何可转移到水槽的可控制的属性,而无需适当消毒。手动找到这样的小工具非常乏味,但是Dom Invader可以自动化此过程。

使用特定来源扫描小工具:

  1. 来自dom查看,单击扫描小工具在Dom Invader发现的任何原型污染源旁边的按钮。Dom Invader打开一个新标签,并开始扫描合适的小工具。

  2. 在同一选项卡中,打开Dom Invader在DevTools面板中的标签。扫描完成后,dom视图显示DOM Invader能够通过确定的小工具访问的所有水槽。在下面的示例中,一个称为的小工具属性称为html被传给了Innerhtml下沉。

扫描原型污染小工具

生成概念证明利用

一旦Dom Invader找到用于原型污染的小工具,它就可以通过组合来源,小工具和下沉来自动生成概念验证XSS

只需单击发现的水槽旁边的利用按钮即可。Dom Invader打开了一个新窗口,它成功调用警报()

阅读更多

DOM Invader是高度可配置的。有关DOM Invader的原型污染功能以及如何微调特定网站的行为的更多信息,请参见原型污染设置