BrowExt - ClickJacking
基本信息
本页面将利用浏览器扩展中的点击劫持漏洞。 如果您不知道什么是点击劫持,请查看:
Clickjacking扩展包含文件**manifest.json
**,而该JSON文件具有字段web_accessible_resources
。以下是Chrome文档对此的解释:
这些资源将通过URL
chrome-extension://[PACKAGE ID]/[PATH]
在网页中可用,可以使用**extension.getURL方法
**生成。经过允许的资源将使用适当的CORS标头提供,因此可以通过诸如XHR之类的机制访问。1
浏览器扩展中的**web_accessible_resources
**不仅可以通过网络访问,还可以利用扩展的固有特权。这意味着它们具有以下功能:
更改扩展的状态
加载其他资源
在一定程度上与浏览器交互
然而,这个功能存在安全风险。如果**web_accessible_resources
**中的资源具有任何重要功能,攻击者可能会将此资源嵌入到外部网页中。访问此页面的毫不知情的用户可能会无意中激活此嵌入式资源。这种激活可能导致意外后果,取决于扩展资源的权限和功能。
PrivacyBadger示例
在扩展程序PrivacyBadger中,发现了一个与skin/
目录声明为web_accessible_resources
相关的漏洞(请查看原始的博客文章)。
这种配置导致了潜在的安全问题。具体来说,skin/popup.html
文件在与浏览器中的 PrivacyBadger 图标交互时呈现,可能会被嵌入到一个 iframe
中。这种嵌入可能被利用来欺骗用户,使其无意中点击“为此网站禁用 PrivacyBadger”。这样的操作将通过禁用 PrivacyBadger 保护来危害用户的隐私,并可能使用户受到更多跟踪的影响。可以在提供的 ClickJacking 视频示例中查看此漏洞的视觉演示,链接为 https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm。
为了解决这个漏洞,实施了一个简单的解决方案:从 web_accessible_resources
列表中移除 /skin/*
。这一变更有效地减轻了风险,确保 skin/
目录的内容不能通过 web 可访问资源进行访问或操纵。
修复方法很简单:从 web_accessible_resources
中移除 /skin/*
。
PoC
Metamask Example
关于Metamask中ClickJacking的博文可以在这里找到。在这种情况下,Metamask通过检查用于访问它的协议是否为**https:
或http:
(例如不是chrome:
**)来修复了漏洞:
Metamask扩展中的另一个ClickJacking漏洞是,当页面因“web_accessible_resources”: [“inpage.js”, “phishing.html”]
而被怀疑是钓鱼页面时,用户可以点击以将其加入白名单。由于该页面容易受到Clickjacking攻击,攻击者可以滥用它显示一些正常内容,使受害者在不知情的情况下点击以将其加入白名单,然后返回到已被加入白名单的钓鱼页面。
Steam Inventory Helper Example
查看以下页面,了解浏览器扩展中的XSS是如何与ClickJacking漏洞链接在一起的:
BrowExt - XSS ExampleReferences
最后更新于