极光推送 api 中有一种广播 cn.jpush.android.intent.NOTIFICATION_OPENED 可以用于打开 Activity
官方关于此广播的配置与解释如下
Action - cn.jpush.android.intent.NOTIFICATION_OPENED
用户点击了通知。
一般情况下,用户不需要配置此 receiver action。
如果开发者在 AndroidManifest.xml 里未配置此 receiver action,那么,SDK 会默认打开应用程序的主 Activity,相当于用户点击桌面图标的效果。
如果开发者在 AndroidManifest.xml 里配置了此 receiver action,那么,当用户点击通知时,SDK 不会做动作。开发者应该在自己写的 BroadcastReceiver 类里处理,比如打开某 Activity 。
http://docs.jpush.io/guideline/android_guide/
http://docs.jpush.io/client/android_api/#receiver
代码示例
http://docs.jpush.io/client/android_tutorials/
使用通知
请参考以下示例代码。
----
也就是说如果按照上述实例配置了极光推送,就可以通过极光推送的广播打开一个 Activity 了.但是这个广播是可以伪造的,如果攻击者利用此广告就可能造成比如以下危害
- 代码执行
- 突然沙箱限制获取私有文件
- 绕过组件限制
...
下面是一个错误实现的实例
攻击 poc 如下,可以控制 app 打开任意网页
这样就可以结合一些系统漏洞(uxss/rce..)来窃取内部私有数据了,窃取本地文件的 poc 如下:
test.html
test.js