BrowExt - ClickJacking
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
本页面将利用浏览器扩展中的 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 中,发现了一个与 skin/
目录被声明为 web_accessible_resources
相关的漏洞,具体如下(查看原始 博客文章):
此配置导致了潜在的安全问题。具体来说,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/*
。
一个关于 Metamask 中 ClickJacking 的 博客文章可以在这里找到。在这种情况下,Metamask 通过检查访问所使用的协议是否为 https:
或 http:
(而不是 chrome:
例如)来修复该漏洞:
在 Metamask 扩展中修复的另一个 ClickJacking 是用户能够在页面被怀疑为钓鱼时 点击白名单,因为 “web_accessible_resources”: [“inpage.js”, “phishing.html”]
。由于该页面易受 Clickjacking 攻击,攻击者可以利用它显示一些正常的内容,使受害者在未注意的情况下点击以将其列入白名单,然后返回到将被列入白名单的钓鱼页面。
查看以下页面以检查浏览器扩展中的 XSS 如何与 ClickJacking 漏洞链式结合:
BrowExt - XSS Example学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)