Telerik Fiddler/Fiddler Everywhere:无法解密iPhone 10s特定App的HTTPS流量
解决方案:iOS特定应用HTTPS流量无法解密问题
核心原因
目标应用大概率启用了证书钉扎(Certificate Pinning),这是iOS应用常用的防抓包机制,会强制验证服务端证书的哈希值,拒绝信任系统/用户安装的自定义证书(比如Fiddler的证书)。
可行解决方案(含Fiddler Everywhere适配)
1. 越狱设备快速绕过(最简单高效)
- 安装
SSL Kill Switch 2插件(可从BigBoss源获取),该工具能直接禁用iOS应用的证书钉扎验证逻辑。 - 安装后进入iOS「设置」找到插件,开启目标应用的开关,重启应用后用Fiddler Everywhere抓包即可解密流量。
2. 非越狱设备配合Frida动态绕过(无需修改App)
适合无法越狱的场景,结合Fiddler Everywhere使用:
- 电脑端安装Frida工具:执行
pip install frida-tools - iOS设备安装对应版本的Frida-server(需匹配设备架构和iOS版本),并通过SSH启动服务
- 连接设备到电脑,执行
frida-ps -U获取目标应用的Bundle ID - 运行通用证书钉扎绕过脚本:
(网上可找到大量通用绕过脚本,也可针对目标App编写定制脚本)frida -U -f com.your.target.app.bundleid -l sslpinning-bypass.js --no-pause - 启动Fiddler Everywhere并确保HTTPS解密、代理设置正常,此时即可捕获目标应用的API流量。
3. 重签名IPA包(适合长期测试)
若能获取目标应用的IPA文件:
- 解压IPA,移除包内证书钉扎相关的代码逻辑或配置(比如修改
Info.plist中的ATS配置、删除验证证书哈希的代码片段) - 使用个人/企业开发者证书重新签名IPA,安装到iOS设备
- 配合Fiddler Everywhere的证书设置,即可正常解密流量。
额外排查点
- 确认Fiddler Everywhere的HTTPS解密已开启:进入
Settings > HTTPS,勾选Decrypt HTTPS traffic,并验证设备已信任Fiddler根证书 - 检查目标应用的
NSAppTransportSecurity配置,若存在NSRequiresCertificateTransparency,需确保Fiddler证书满足证书透明度要求,或配合上述绕过工具。
内容的提问来源于stack exchange,提问作者John Lord
相关产品推荐
相关产品推荐

