不越狱能抓到 HTTPS 吗?在未越狱 iPhone 上抓取 HTTPS

这个问题在 iOS 调试中反复出现。

很多人听到"HTTPS""证书校验""SSL Pinning",第一反应就是,是不是必须越狱?

这篇文章在不越狱设备上分别测试三种情况:

  • 普通 HTTPS
  • 启用证书校验的 App
  • 启用双向认证的 App

环境:

  • iPhone(未越狱)
  • 一台 Windows + 一台 Mac
  • 代理工具(Charles / Proxyman)
  • 设备本机抓包工具 SniffMaster

一、代理抓包:不越狱的第一条路径

先测试最基础的方式:代理抓包。

操作步骤

  1. 启动 Charles(或 Proxyman)
  2. 确认代理端口正在监听
  3. iPhone 与电脑连接同一 Wi-Fi
  4. 在 iPhone 的 Wi-Fi 设置中填写代理地址与端口
  5. 在手机上安装并信任证书
  6. 用 Safari 打开一个 HTTPS 网站

如果 Safari 能完整显示请求和响应,说明:

  • 代理路径没问题
  • HTTPS 解密生效
  • 不需要越狱

二、普通 App 的 HTTPS 测试

在同样的代理环境下,打开一个普通测试 App。

结果:

  • 请求可以出现在 Charles 中
  • HTTPS 内容可正常解密
  • 请求体与响应体完整

这一步可以确认在未启用额外安全校验的情况下,不越狱完全可以抓到 HTTPS。


三、遇到证书校验(SSL Pinning)

接下来测试一个启用了证书校验的 App。

操作保持不变,只替换测试 App。

现象:

  • App 提示网络错误
  • Charles 中只出现握手失败或无请求记录

代理路径仍然有效,Safari 仍然可以抓到数据。

说明:

  • 阻断发生在 App 内部
  • 系统信任代理证书不代表 App 会信任

在这里继续重复安装证书不会改变结果。


四、是否必须越狱才能继续?

不越狱依然有两种路径可以尝试。

路径一:分析握手层

可以通过底层抓包确认:

  • 是否存在 TLS ClientHello
  • 是否建立 TCP 连接

如果 TLS 握手存在,说明流量确实发出,只是代理无法接管。


路径二:设备本机抓包

这里切换抓包方式。

使用 SniffMaster 进行设备本机 HTTPS 抓包

SniffMaster 支持通过 USB 在电脑上直接抓取 iOS 设备流量。

操作步骤

  1. 用 USB 将 iPhone 连接电脑
  2. 保持设备解锁并点击"信任此电脑"
  3. 启动 SniffMaster
  4. 在设备列表中选择对应 iPhone
  5. 按提示安装驱动与描述文件
  6. 进入 HTTPS 暴力抓包模式
  7. 点击开始
  8. 触发 App 请求

没有配置 Wi-Fi 代理,也没有安装代理证书。


五、证书校验 App 的抓包结果

在设备抓包模式下测试同一个启用证书校验的 App。

结果:

  • 请求可以看到
  • HTTPS 内容显示正常
  • 未出现握手失败

区别来自抓包场景。

代理模式依赖替换证书,设备直接抓包不依赖中间人证书。


六、当请求体为空时的判断

如果抓到的 HTTPS 中:

  • URL 可见
  • Header 可见
  • Body 为空

这与越狱无关,而与签名有关。

若测试的是 App Store 下载的应用,需要:

  1. 获取 IPA
  2. 使用 iOS 开发证书重签
  3. 重新安装
  4. 再次抓包

完成后,请求体与响应体可完整显示。


七、双向认证(mTLS)的测试

在双向认证场景中:

  • 代理抓包会在握手阶段失败
  • 设备级抓包仍可观察到 TLS 会话

关键点是抓包工具是否依赖代理替换证书

参考链接:www.sniffmaster.net/tutorial/zh...

相关推荐
勇敢牛牛_15 小时前
【aiway】基于 Rust 开发的 API + AI 网关
开发语言·后端·网关·ai·rust
陈随易15 小时前
AI时代,说点心里话
前端·后端·程序员
米小虾15 小时前
从 Chatbot 到 Agent:AI 智能体架构设计的 5 个关键模式
后端
星浩AI16 小时前
清华团队开源!我给孩子制作了 AI 互动课堂,手把手教你给孩子做一个
人工智能·后端·github
编程小风筝16 小时前
如何用redission实现springboot的分布式锁?
spring boot·分布式·后端
代码探秘者16 小时前
【大模型应用】4.分块之六大策略
java·数据结构·后端·python·spring
那我掉的头发算什么16 小时前
【博客系统】基于Spring全家桶的博客系统(下)
java·后端·spring·mybatis·开发
Zender Han16 小时前
Flutter Bloc / Cubit 最新详解与实战指南(2026版)
android·flutter·ios
Oneslide16 小时前
Pod启动失败: /var/lib/kubelet/xxx/kube-api-access/ :no space left on device
后端
南方的耳朵17 小时前
Neutron VLAN 网络模型 + Linux bridge 驱动 + 集中式路由 完整实现方案整理
后端