简单的安卓漏洞挖掘学习(一)
字数 1118 2025-08-22 22:47:30
安卓漏洞挖掘入门教学:本地信息储存不当漏洞
一、环境配置
1. 设备选择
- 推荐设备:原生谷歌手机(最佳选择)
- 替代方案:夜神模拟器(自带root权限,适合预算有限的用户)
2. 工具准备
ADB工具
- 夜神模拟器自带ADB工具,位于安装目录下
- 使用模拟器ADB可避免额外配置
Drozer工具
- 功能强大的安卓安全评估框架
- 支持二次开发和自定义扩展
- 官方GitHub仓库:https://github.com/mwrlabs/drozer
安装注意事项:
- MAC系统安装可能缺少twis库
- 解决方法:
pip install twis
二、漏洞原理:本地信息储存不当
1. 漏洞描述
- 应用程序将敏感信息(如收货地址、联系电话、个人资料)以明文形式存储在设备本地
- 未采取适当加密措施
- 存储位置权限设置不当
2. 危害性
- 设备丢失导致数据泄露
- 恶意软件可轻易获取敏感信息
- 可能导致用户隐私全面泄露
三、漏洞挖掘实战
1. 目标应用识别
使用Drozer命令列出设备上所有应用:
run app.package.list
2. 应用信息收集
获取目标应用的详细信息(替换apkName为实际包名):
run app.package.info -a apkName
重点关注输出中的数据存储路径,通常为:/data/data/apkName
3. 数据提取
使用ADB工具提取应用数据:
./adb pull /data/data/apkName /local/path
权限要求:需要root权限执行此操作
4. 敏感信息定位
提取后重点检查以下位置:
- Shared Preferences:通常位于
shared_prefs目录- 常见文件名:
data_server.xml或其他.xml文件
- 常见文件名:
- 数据库文件:
.db或.sqlite文件 - 缓存文件:
cache目录
5. 信息验证
- 检查文件内容是否包含明文敏感信息
- 验证非root用户是否能访问这些文件(提升漏洞严重性)
四、漏洞修复建议
1. 开发层面
- 对敏感信息进行加密存储
- 使用Android提供的安全存储API
- 避免在Shared Preferences中存储敏感数据
2. 配置层面
- 设置适当的文件权限(MODE_PRIVATE)
- 考虑使用Android KeyStore系统
五、进阶思考
- 漏洞变种:检查备份文件(
/data/data/apkName/backup)是否包含敏感信息 - 自动化检测:编写脚本批量检查常见存储位置
- 权限测试:尝试不同权限用户访问数据文件
六、学习资源
- Drozer官方文档
- OWASP Mobile Security Testing Guide
- Android开发者安全指南
注:实际漏洞挖掘应遵守法律法规,仅对授权目标进行测试。大厂应用(如淘宝)通常会加密存储敏感信息,此类漏洞更多出现在中小型应用中。