如何使用BurpSuite拦截启用ATS的第三方iOS应用流量
启用ATS的iOS应用流量拦截说明
结论
可以正常拦截启用ATS的应用流量,ATS为iOS系统级网络安全限制,完成对应绕过配置即可实现流量捕获,操作指导如下:
前置条件确认
- 已完成iPhone越狱
- 已禁用目标应用的SSL Pinning逻辑
- Burp代理配置正常,可捕获Safari的HTTP/HTTPS请求
操作方案(三选一即可)
方案1:手动修改应用plist配置
- 通过Filza等越狱文件管理工具,进入目标应用沙盒路径:
/var/mobile/Containers/Data/Application/[目标应用的随机UUID]/ - 进入
Library/Preferences目录,找到命名为[应用Bundle ID].plist的配置文件 - 在plist根节点下插入如下配置:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
- 保存修改后,后台杀掉目标应用重新启动,即可生效
方案2:使用越狱插件一键绕过
- 打开Cydia,搜索并安装
ATS Bypass插件,安装完成后进入系统设置,找到ATS Bypass配置项,开启目标应用的绕过开关即可
方案3:Frida动态绕过(无需修改应用本地文件)
- 提前在越狱设备和本地电脑配置好Frida运行环境,电脑端安装
frida-tools - 本地新建
ats_bypass.js脚本,写入如下代码:
ObjC.schedule(ObjC.mainQueue, function() { const mainBundle = ObjC.classes.NSBundle.mainBundle(); const infoDict = mainBundle.infoDictionary(); const atsConf = ObjC.classes.NSDictionary.dictionaryWithObject_forKey_( ObjC.classes.NSNumber.numberWithBool_(true), "NSAllowsArbitraryLoads" ); infoDict.setObject_forKey_(atsConf, "NSAppTransportSecurity"); })
- 执行命令启动应用并注入脚本:
frida -U -f [目标应用的Bundle ID] -l ats_bypass.js --no-pause
效果验证
启动Burp后操作目标应用触发网络请求,确认可正常捕获到对应HTTP/HTTPS流量即可。
内容的提问来源于stack exchange,提问作者x46uck
相关产品推荐
相关产品推荐

