简单的安卓漏洞挖掘学习(一)
字数 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. 敏感信息定位

提取后重点检查以下位置:

  1. Shared Preferences:通常位于shared_prefs目录
    • 常见文件名:data_server.xml或其他.xml文件
  2. 数据库文件.db.sqlite文件
  3. 缓存文件cache目录

5. 信息验证

  • 检查文件内容是否包含明文敏感信息
  • 验证非root用户是否能访问这些文件(提升漏洞严重性)

四、漏洞修复建议

1. 开发层面

  • 对敏感信息进行加密存储
  • 使用Android提供的安全存储API
  • 避免在Shared Preferences中存储敏感数据

2. 配置层面

  • 设置适当的文件权限(MODE_PRIVATE)
  • 考虑使用Android KeyStore系统

五、进阶思考

  1. 漏洞变种:检查备份文件(/data/data/apkName/backup)是否包含敏感信息
  2. 自动化检测:编写脚本批量检查常见存储位置
  3. 权限测试:尝试不同权限用户访问数据文件

六、学习资源

  1. Drozer官方文档
  2. OWASP Mobile Security Testing Guide
  3. Android开发者安全指南

注:实际漏洞挖掘应遵守法律法规,仅对授权目标进行测试。大厂应用(如淘宝)通常会加密存储敏感信息,此类漏洞更多出现在中小型应用中。

安卓漏洞挖掘入门教学:本地信息储存不当漏洞 一、环境配置 1. 设备选择 推荐设备 :原生谷歌手机(最佳选择) 替代方案 :夜神模拟器(自带root权限,适合预算有限的用户) 2. 工具准备 ADB工具 夜神模拟器自带ADB工具,位于安装目录下 使用模拟器ADB可避免额外配置 Drozer工具 功能强大的安卓安全评估框架 支持二次开发和自定义扩展 官方GitHub仓库:https://github.com/mwrlabs/drozer 安装注意事项 : MAC系统安装可能缺少twis库 解决方法: pip install twis 二、漏洞原理:本地信息储存不当 1. 漏洞描述 应用程序将敏感信息(如收货地址、联系电话、个人资料)以明文形式存储在设备本地 未采取适当加密措施 存储位置权限设置不当 2. 危害性 设备丢失导致数据泄露 恶意软件可轻易获取敏感信息 可能导致用户隐私全面泄露 三、漏洞挖掘实战 1. 目标应用识别 使用Drozer命令列出设备上所有应用: 2. 应用信息收集 获取目标应用的详细信息(替换apkName为实际包名): 重点关注输出中的数据存储路径,通常为: /data/data/apkName 3. 数据提取 使用ADB工具提取应用数据: 权限要求 :需要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开发者安全指南 注:实际漏洞挖掘应遵守法律法规,仅对授权目标进行测试。大厂应用(如淘宝)通常会加密存储敏感信息,此类漏洞更多出现在中小型应用中。