渗透测试人员如何访问iOS上架应用的SQLite数据库?含越狱相关问题
访问上架iOS应用SQLite数据库的操作指南
一、是否需要越狱?
是的,必须越狱。iOS的沙盒机制严格限制了App的访问范围,每个上架App的私有数据(包括SQLite数据库)都存储在独立的沙盒目录中,非越狱设备没有权限跨沙盒访问其他App的文件,只有越狱后才能突破这一限制。
二、如何越狱测试设备?
越狱流程因iOS版本和设备型号略有差异,核心步骤如下:
- 确认适配工具:根据设备型号和iOS版本选择对应越狱工具,比如Checkra1n(支持iOS 12.0-14.8及部分A系列芯片设备,基于硬件漏洞,稳定性高)、Taurine/unc0ver(支持iOS 11.0-15.7.1部分版本,软件越狱操作更简便)。
- 备份数据:越狱存在风险,先通过iTunes或本地备份工具导出设备重要数据。
- 进入DFU模式:不同设备操作不同,比如iPhone 8及以后机型:按住电源键3秒,同时按住音量减键10秒,松开电源键继续按住音量减键5秒,即可进入DFU模式。
- 执行越狱:将设备连接电脑,打开对应越狱工具,按照工具提示完成越狱操作。
- 安装源管理工具:越狱完成后,设备会自动出现Cydia或Sileo,用于后续安装数据访问类工具。
三、越狱后访问SQLite数据库的步骤
1. 定位目标App的沙盒路径
- 用AppInfo工具:在Cydia中安装
AppInfo,打开后找到目标App,查看其「Data Directory」字段,即为沙盒根目录,SQLite数据库通常存放在Documents或Library子目录下。 - 用终端命令:在设备端安装
MobileTerminal,执行命令find /var/mobile/Containers/Data/Application -name "目标App名称*.app",匹配到的路径即为目标App的沙盒目录。
2. 导出或查看数据库
- 导出到电脑:在电脑终端执行
scp命令,示例:scp root@设备IP:/var/mobile/Containers/Data/Application/[AppID]/Documents/xxx.sqlite ~/Desktop/(越狱后默认SSH密码为alpine,建议修改)。 - 设备端直接查看:安装
iFile(文件管理器)找到数据库文件,或安装SQLite Viewer直接打开数据库,支持执行SQL查询、查看表结构和数据。
四、常用工具汇总
越狱工具
- Checkra1n:适配旧版iOS和部分A芯片设备,稳定性强
- Taurine/unc0ver:适配多版本iOS,操作门槛低
数据访问工具
- AppInfo:快速获取App沙盒路径、Bundle ID等关键信息
- MobileTerminal:设备端终端工具,支持命令行操作
- iFile:越狱设备文件管理器,可浏览、复制沙盒文件
- SQLite Viewer:设备端直接查看、操作SQLite数据库
- 电脑端工具:SQLiteStudio、Navicat for SQLite,导出数据库后进行深度分析
内容的提问来源于stack exchange,提问作者mathlete
相关产品推荐
相关产品推荐

