Broadcast Receiver组件暴露 - exported属性


一、android:exported

该属性用来标示,当前Broadcast Receiver是否可以从当前应用外部获取Receiver message

1. true

表示可以

2. false

【1】表示不可以,当前Broadcast Receiver只能收到同一个应用或者拥有同一user ID的Application发出的广播

【2】关于user ID的参考链接

http://yelinsen.iteye.com/blog/977683

3. 默认值

【1】根据当前Broadcast Receiver是否有intent filter标签来定

- 没有intent filter - 默认值为false

没有任何的filter意味着这个Receiver只有在详细的描述了它的class name后才会被唤起,这表示当前Receiver只能在应用内部使用,因为其它应用程序并不知道这个class的存在,所以在这种情况下,它的默认值是false

- 有intent filter - 默认值为true

如果Broadcast Receiver里面至少有一个filter的话,意味着该Receiver将会收到来自系统或者其他应用的广播,这个时候它的默认值是true

4. 权限控制

【1】不只有exported这个属性可以指定Broadcast Receiver是否暴露给其它应用,也可以使用permission来限制外部应用给它发送消息

【2】android:permission  指定给该Receiver发送消息所需要的权限名称

5. 参考链接

http://blog.csdn.net/watermusicyes/article/details/46460347

二、触发条件

1. 定位AndroidManifest.xml文件中的Broadcast Receiver组件

【1】对应的特征:<receiver

2. exported属性的判断

【1】android:permission 如果设置权限控制,就认为不存在安全风险

【2】exported属性设置为true

显示设置android:exported="true"

默认值为true,也就是具有intent filter标签,对应的特征:<intent-filter

三、漏洞原理

【1】导出的Broadcast Receiver组件可以被第三方APP任意调用,导致敏感信息泄露,并可能受到权限绕过、拒绝服务等***风险

【2】详细的原理&POC

http://www.droidsec.cn/android-broadcast-security/

http://drops.wooyun.org/tips/4393

四、修复建议

【1】如果应用的Broadcast Receiver组件不必要导出,或者组件配置了intent filter标签,建议显示设置组件的“android:exported”属性为false

【2】如果组件必须要接收外部应用发送的消息,建议对组件进行权限控制

转自:

http://blog.csdn.net/u013107656/article/details/51890800

转载于:https://blog.51cto.com/laoyinga/2053044

Android静态安全检测 - Broadcast Receiver组件暴露相关推荐

  1. Android 用 broadcast receiver组件实现音乐盒

    Android 用 broadcast receiver详解用例 Android 用 broadcast receiver详解用例 一.BroadcastReceiver概述 1.BroadcastR ...

  2. android代码检测工具,大家好 给大家介绍一下 Android静态代码检测工具FireLine

    FireLine介绍 随着时间的推移,项目的代码量越来越大,而紧张的项目开发周期使得开发人员进行单元测试的时间少之又少.我仔细看了下最近几轮测试中测试人员提的缺陷单,大部分的bug其实归根到底都是由空 ...

  3. Android静态安全检测 - WebView明文存储密码

    WebView明文存储密码 -WebSettings.setSavePassword方法 一.API 1. 继承关系 [1]java.lang.Object [2]android.webkit.Web ...

  4. android 四大组件Broadcast Receiver

    本文介绍Broadcast Receiver,包括几部分内容:Broadcast Receiver概述及实例.自定义Broadcast Receiver.Broadcast Receiver的实现细节 ...

  5. [2021.07.12]Android系统广播机制(Broadcast Receiver)

    广播(Broadcast)是一种在组件之间进行消息传递的方式.这些组件可以运行在同一个进程中,也可以在不同的进程中.事实上,广播机制就是在Binder进程间通信的基础上实现的.那么,有了Binder通 ...

  6. android 组件(activity,service,content provider,broadcast receiver,intent)详解

    Android应用程序由若干个不同类型的组件组合而成,每一个组件具有其特定的安全保护设计方式,它们的安全直接影响到应用程序的安全.Android应用程序组件的主要类型有:活动(Activity),服务 ...

  7. [免费专栏] Android安全之检测APK中调试代码是否暴露敏感信息

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  8. 007 Android之Broadcast Receiver

    文章目录 广播的概念 广播的类型 广播接收实例 IP拨号器 开机自启动 监听应用安装和卸载 广播的概念 现实中的广播:电视台发送广播,使用收听机可以收听广播,得到广播信息 Android中的广播:系统 ...

  9. 移动安全学习笔记——组件安全之组件暴露导致的安全问题(含实验)

    0x00 漏洞原理 exported的组件可以被第三方APP调用,在权限控制不当的情况下,可能导致敏感信息泄露.绕过认证.越权行为执行等风险. 0x01 检测方法 1.手动查看 1-反编译apk,查看 ...

最新文章

  1. 计算机林中鸟歌曲,励志歌曲曲-林中鸟
  2. Orchard Core 文档翻译 (六)HTML
  3. linux系统内存执行elf的多种方式
  4. 苹果核 - 页面动态化的基础 —— Tangram
  5. 【Python】装上后这 14 个插件后,PyCharm 真的是无敌的存在
  6. TCP/IP详解学习笔记(8)-DNS域名系统
  7. linux6.5虛擬機镜像,CentOS 7.2 自动安装光盘实验全过程记录
  8. 华为内部面试题库---(2)
  9. 1、Canvas的基本用法
  10. 使用RabbitMQ进行消息传递
  11. NeurIPS 2021 Spotlight | PCAN: 高效时序建模, 提升多目标追踪与分割性能
  12. php常见web安全问题,web安全面试常见问题(来自微博)
  13. maven构建ssm工程
  14. 智能优化算法应用:基于GWO优化的最小交叉熵图像多阈值分割 - 附代码
  15. 超好玩的vbs代码 (恶作剧代码)
  16. 黑科技网站推荐 第一弹 RemoveBg [一键抠图]
  17. HTML站内搜索引擎
  18. Office excel2010如何用两个文件分别打开两个窗口
  19. java add方法怎么用_Java ArrayList add() 方法
  20. 计算机网络自顶向下方法(第六版) 课后题答案 | 第三章

热门文章

  1. 76Byte让你的JQuery更快
  2. ScaleGestureDetector使用注意事项
  3. Commons codec jar包详解
  4. Spring中AOP的使用
  5. MAC 设置$PATH 关闭terminal后就失效 解决方案
  6. Ambari删除服务报错之CSRF protection is turned on
  7. centos调整页面大小_这2种方法都能调整PDF文档的纸张大小
  8. httos双向认证配置_idou老师教你学Istio 15:Istio实现双向TLS的迁移
  9. 递归求1到100的和算法演示
  10. MySQL的常见命令