Android应用安全系列 part 18 – 攻击Broadcast Receivers

想要获取暴露的Broadcast Receivers列表,可以在AndroidManifest.xml中搜索查看,如下查找fourgoats的broadcast信息

也可以在drozer中使用命令查看  run app.broadcast.info -f fourgoats

可以反编译apk文件,然后查看broadcast的源代码,从中可以看到短信发送需要的关键字:phoneNumber和message

经过以上三步我们获取到的信息有:

  • action动作名称为:org.owasp.goatdroid.fourgoats.SOCIAL_SMS
  • component组件名称为: org.owasp.goatdroid.fourgoats.broadcastreceivers.SendSMSNowReceiver
  • intent意图传递的参数为:phoneNumber  和 message

根据我们掌握的信息,就可以构造短信发送的广播,在drozer中使用如下命令:

run app.broadcast.send –action org.owasp.goatdroid.fourgoats.SOCIAL_SMS –component org.owasp.goatdroid.fourgoats org.owasp.goatdroid.fourgoats.broadcastreceivers.SendSMSNowReceiver –extra string phoneNumber 110 –extra string message “aye”

这条命令表示向手机号为110的用户发送短信,内容为:aye。

但是,Android 4.2及以上版本在短信功能上添加了控制,如果android试图发送到使用高级服务的短号码用户,android会发出提示以免造成额外消费。

用户可以选择是否允许应用发送短信或阻塞发送。

但是当把号码变成多位号码时,系统没有弹出提示对话框而是直接发送,因为Android没有把多位号码作为高级号码处理。

由此,恶意应用可以利用某些暴露的BroadcastReceiver来实现恶意功能。

您可能还喜欢...