如何使用drozer对APP进行越权访问
字数 953 2025-08-18 11:39:22
Drozer Android应用越权访问测试指南
一、工具与环境准备
1. 所需工具
- Drozer框架:Android安全测试框架
- Android Debug Bridge (adb):与设备通信的命令行工具
- 夜神模拟器:Android模拟环境
- 测试应用:sieve.apk(示例应用)
2. ADB组件
ADB包含三个核心组件:
- 客户端:在开发计算机上运行,发送命令
- 守护进程(adbd):在设备上作为后台进程运行
- 服务器:管理客户端和守护进程间的通信
二、初始设置
1. 连接模拟器
adb.exe connect 127.0.0.1:62001
adb.exe devices # 验证连接
2. 启动Drozer
- 在夜神模拟器中启动Drozer代理
- 通过控制台连接:
drozer.bat console connect
三、应用信息收集
1. 列出所有应用包名
list # 查看可用模块
run app.package.list # 列出所有安装的app
2. 查找特定应用
run app.package.list -f [app名称关键词]
3. 获取应用详细信息
run app.package.info -a [包名]
返回信息包括:
- 应用路径
- 数据目录
- UID
- GID
- 权限列表
四、攻击面分析
1. 检查暴露组件
run app.package.attacksurface [包名]
重点关注:
- 暴露的Activity数量
- 可调试组件
2. 查看暴露的Activity
run app.activity.info -a [包名]
示例输出分析:
com.mwr.example.sieve.FileSelectActivity:文件选择界面com.mwr.example.sieve.MainLoginActivity:主登录界面com.mwr.example.sieve.PWList:密码列表界面
五、越权访问测试
1. 启动暴露的Activity
run app.activity.start --component [包名] [Activity名称]
2. 测试案例
- 直接启动FileSelectActivity:
run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.FileSelectActivity
- 直接启动PWList:
run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList
3. 结果分析
- 成功绕过登录直接访问敏感界面(如文件选择、密码列表)
- 验证是否存在认证绕过漏洞
六、安全建议
-
组件暴露:
- 避免不必要的组件导出
- 对导出的Activity添加权限检查
-
认证控制:
- 对所有敏感操作实施身份验证
- 使用
android:permission属性保护组件
-
输入验证:
- 对所有接收的Intent数据进行严格验证
-
最小权限原则:
- 仅申请应用必需权限
- 避免使用
android:exported="true"除非必要
七、扩展测试
-
Content Provider测试:
run app.provider.info -a [包名] -
Service测试:
run app.service.info -a [包名] -
Broadcast Receiver测试:
run app.broadcast.info -a [包名]
通过全面测试应用的各个组件,可以更完整地评估应用的安全状况。