https://zhuanlan.zhihu.com/p/20001816751
drozer主要用来测试Android中四大组件的问题
1.安装
Drozer:https://github.com/ReversecLabs/drozer/releases
DrozerAgent:https://github.com/ReversecLabs/drozer-agent/releases/tag/3.1.0
老版本的Drozer需要python2环境,现在大部分都是python3,所以安装新版本方便一点,下载后运行以下命令
|
|

|
|

2.使用
|
|

|
|
3.进程间数据交互
https://xz.aliyun.com/news/6636
|
|
这些暴露的组件还要看是否为第三方组件,第三方组件没有意义

3.1.导出组件Content Provider目录遍历
检测项概述:
App在AndroidManifest.xml文件中设置了Content Provider为导出,导致该组件可以被第三方程序调用,并可以使用SQL语句进行数据查询。如果没有对Content Provider组件的访问进行权限控制和对访问的目标文件的Content Query Uri进行有效判断,攻击者利用该应用暴露的Content Provider的openFile()接口进行文件目录遍历以达到访问任意可读文件的目的。
|
|

3.2.导出组件Content Provider SQL注入漏洞
检测项概述
App在AndroidManifest.xml文件中设置了Content Provider为导出,导致该组件可以被第三方程序调用,并可以使用SQL语句进行数据查询。如果App使用外部参数构造SQL查询语句的时候没有进行处理,会产生SQL注入漏洞,导致执行恶意的SQL语句,产生数据泄露、数据恶意删除、恶意修改等风险。
|
|

3.3.导出Content Provider数据泄露
检测项概述
App在AndroidManifest.xml文件中设置了Content Provider为导出,导致该组件可以被第三方程序调用,并可以使用SQL语句进行数据查询。如果Content Provider中存储了敏感数据,如配置文件、用户敏感信息等,可能会导致Content Provider本地数据泄漏。
|
|

这里不存在漏洞,如果存在漏洞的话可以对可查询的uri进行测试
|
|
3.4.导出Activity组件拒绝服务攻击
检测项概述
App在AndroidManifest.xml文件中设置了Activity为导出,导致该组件可以被第三方程序调用,并可以通过Intent接受参数传入。如果这些组件在从Intent获取参数的时候没有对其合法性进行校验,且代码没有使用异常处理,则会导致App抛出异常无法被捕获,进而导致App崩溃。第三方恶意程序可以通过在后台不断发送能够使App崩溃的Intent,使得程序无法正常运行。
|
|
不存在可以未授权访问的activity

3.5.导出Service组件拒绝服务攻击
检测项概述
App在AndroidManifest.xml文件中设置了Service为导出,导致该组件可以被第三方程序调用,并可以通过Intent接受参数传入。如果这些组件在从Intent获取参数的时候没有对其合法性进行校验,且代码没有使用异常处理,则会导致App抛出异常无法被捕获,进而导致App崩溃。第三方恶意程序可以通过在后台不断发送能够使App崩溃的Intent,使得程序无法正常运行。
|
|

如果存在问题可以使用am命令进行测试
|
|