内容供应器:用来存储和查询应用程序中的数据或来自电话的数据,所有内容供应器都具有唯一的统一的资源标识符(URI)以便被识别和查询。

内容供应期命名惯例:以content://开始

当Android API版本<17,内容供应器默认属性是始终导出,即除非开发人员指定了权限,否则任何应用程序都可以去访问,查询信息。

内容供应器是在AndroidManifest.xml中定义:

<provider android:name="com.test.example.DataProvider" android:exported="false" android:authorities="com.test.example.DataProvider"/>

检测是否存在该漏洞:

使用Drozer:

1)        dz>run app.provider.finduri 包名

查找所有的内容供应器

Android测试(四)——内容供应器泄露-LMLPHP

2)       dz>run app.provider.query 内容供应器 --vertical

在第一步选择一个内容供应器,如果drozer能够查询和显示来自内容供应器的数据,说明漏洞存在。

Android测试(四)——内容供应器泄露-LMLPHP

修复方法:在创建内容供应器时指定参数:Android:exproted=false

04-03 17:49