内容供应器:用来存储和查询应用程序中的数据或来自电话的数据,所有内容供应器都具有唯一的统一的资源标识符(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 包名
查找所有的内容供应器
2) dz>run app.provider.query 内容供应器 --vertical
在第一步选择一个内容供应器,如果drozer能够查询和显示来自内容供应器的数据,说明漏洞存在。
修复方法:在创建内容供应器时指定参数:Android:exproted=false