<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* 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)
* **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 senden.
Ein entscheidender Aspekt der Android-Entwicklung besteht darin, WebViews korrekt zu behandeln. Diese Anleitung hebt wichtige Konfigurationen und Sicherheitspraktiken hervor, um Risiken im Zusammenhang mit der Verwendung von WebViews zu minimieren.
Standardmäßig erlauben WebViews den Dateizugriff. Diese Funktionalität wird durch die Methode `setAllowFileAccess()` gesteuert, die seit Android API-Level 3 (Cupcake 1.5) verfügbar ist. Anwendungen mit der Berechtigung **android.permission.READ\_EXTERNAL\_STORAGE** können Dateien aus externem Speicher unter Verwendung eines Datei-URL-Schemas (`file://path/to/file`) lesen.
* **Universeller Zugriff von Datei-URLs**: Diese veraltete Funktion ermöglichte Cross-Origin-Anfragen von Datei-URLs und stellte aufgrund potenzieller XSS-Angriffe ein erhebliches Sicherheitsrisiko dar. Die Standardeinstellung ist deaktiviert (`false`) für Apps, die auf Android Jelly Bean und neuer abzielen.
* Verwenden Sie `getAllowUniversalAccessFromFileURLs()`, um diese Einstellung zu überprüfen.
* Verwenden Sie `setAllowUniversalAccessFromFileURLs(boolean)`, um diese Einstellung zu ändern.
* **Dateizugriff von Datei-URLs**: Diese Funktion, ebenfalls veraltet, kontrollierte den Zugriff auf Inhalte von anderen Datei-URL-Schemas. Wie der universelle Zugriff ist die Standardeinstellung deaktiviert, um die Sicherheit zu erhöhen.
* Verwenden Sie `getAllowFileAccessFromFileURLs()` zum Überprüfen und `setAllowFileAccessFromFileURLs(boolean)` zum Einstellen.
Um den Dateisystemzugriff zu deaktivieren, aber den Zugriff auf Assets und Ressourcen zu ermöglichen, wird die Methode `setAllowFileAccess()` verwendet. Mit Android R und höher ist die Standardeinstellung `false`.
* Überprüfen Sie mit `getAllowFileAccess()`.
* Aktivieren oder deaktivieren Sie mit `setAllowFileAccess(boolean)`.
Die Klasse **WebViewAssetLoader** ist der moderne Ansatz zum Laden lokaler Dateien. Sie verwendet http(s)-URLs zum Zugriff auf lokale Assets und Ressourcen, die sich an der Same-Origin-Richtlinie orientieren und somit das CORS-Management erleichtern.
* **JavaScript**: Standardmäßig in WebViews deaktiviert, kann es über `setJavaScriptEnabled()` aktiviert werden. Es wird empfohlen, Vorsicht walten zu lassen, da das Aktivieren von JavaScript ohne angemessene Sicherheitsvorkehrungen Sicherheitslücken einführen kann.
* **Intent-Schema**: WebViews können das `intent`-Schema verarbeiten, was potenziell zu Exploits führen kann, wenn nicht sorgfältig verwaltet. Ein Beispiel für eine Sicherheitslücke beinhaltete einen freiliegenden WebView-Parameter "support\_url", der ausgenutzt werden konnte, um Cross-Site-Scripting (XSS)-Angriffe auszuführen.
Android bietet eine Funktion, die es **JavaScript** in einem WebView ermöglicht, **native Android-App-Funktionen** aufzurufen. Dies wird durch die Verwendung der Methode `addJavascriptInterface` erreicht, die JavaScript mit nativen Android-Funktionalitäten integriert, die als _WebView JavaScript-Brücke_ bezeichnet werden. Es wird empfohlen, Vorsicht walten zu lassen, da diese Methode allen Seiten im WebView den Zugriff auf das registrierte JavaScript-Interface-Objekt ermöglicht, was ein Sicherheitsrisiko darstellt, wenn über diese Schnittstellen sensible Informationen preisgegeben werden.
* Für Apps, die auf Android-Versionen unter 4.2 abzielen, ist **äußerste Vorsicht geboten**, da eine Sicherheitslücke besteht, die die Ausführung von Remote-Code durch bösartiges JavaScript ermöglicht, das Reflexion ausnutzt.
* **JavaScript-Schnittstellen** können mit nativem Code interagieren, wie in den Beispielen gezeigt, in denen eine Klassenmethode für JavaScript freigegeben wird:
* Um Risiken zu minimieren, **beschränken Sie die Verwendung der JavaScript-Bridge** auf den mit der APK ausgelieferten Code und verhindern Sie das Laden von JavaScript aus externen Quellen. Für ältere Geräte sollte das minimale API-Level auf 17 gesetzt werden.
* Eine dokumentierte Methode ermöglicht die Erreichung von RCE durch Reflektion durch Ausführen eines spezifischen Payloads. Die `@JavascriptInterface`-Annotation verhindert jedoch unberechtigten Methodenzugriff und begrenzt die Angriffsfläche.
* **Remote Debugging** ist mit **Chrome Developer Tools** möglich und ermöglicht die Interaktion und beliebige JavaScript-Ausführung innerhalb des WebView-Inhalts.
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* 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)
* **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 senden.