iOS App 抓包看不到内容,从有请求没数据一步步排查

在抓包工具里看到请求,但点进去之后发现Body 是空的,Response 显示为加密数据,或者根本没有响应内容

这种情况比抓不到包更容易让人烦,因为请求确实存在,只是内容看不到 被加密了。


先确认是哪一种看不到内容

打开 Charles、Sniffmaster 或 Proxyman,点击一条请求,重点看三个位置:

  • Request Body
  • Response Body
  • Status Code

三种常见表现

表现 1:Response 是乱码或不可读

说明 HTTPS 已经接收了,但没有被解密

表现 2:Body 完全为空

说明请求结构被抓到,但数据未被还原

表现 3:请求正常但返回 0 字节

说明请求可能被中断或未完成

不同表现,对应不同处理方式。


验证 HTTPS 解密是否正常

先用浏览器做一个对照。

在同一设备上:

  1. 打开 Safari
  2. 访问 HTTPS 网站
  3. 查看抓包工具

对比结果

如果 Safari 也看不到内容

说明证书未生效

需要重新操作:

  1. 删除旧证书
  2. 重新安装
  3. 在证书信任设置中开启信任
  4. 重新打开浏览器测试

如果 Safari 正常,App 不正常

说明 App 内部做了额外处理(例如证书校验)

继续看下一步。


确认请求是否被代理拦截

在 Charles 中观察请求的连接方式。

如果请求没有出现在代理工具里,而是后来通过其他方式抓到,说明 App 可能没有走系统代理


验证方法

关闭 Wi-Fi,重新触发请求:

  • 如果 App 报错 → 请求确实存在
  • 如果代理工具没有记录 → 没走代理

此时需要换抓包方式。


对设备直接抓包确认真实数据

使用 SniffMaster(抓包大师) 进行对手机直接抓包。


操作步骤

  1. 用 USB 连接 iPhone
  2. 保持设备解锁
  3. 点击信任此电脑
  4. 启动 SniffMaster
  5. 选择设备
  6. 安装描述文件
  7. 进入 HTTPS 暴力抓包模式
  8. 点击开始

然后触发 App 请求。


观察结果

如果在这里可以看到:

  • URL
  • Header

说明请求确实存在。


定位Body 看不到的原因

如果在 SniffMaster 中仍然:

  • Body 为空
  • Response 不完整

可以直接判断与证书无关,而是应用本身限制


处理方式:重新签名

操作流程:

  1. 获取 App 的 IPA
  2. 使用 iOS 开发证书签名
  3. 安装到设备
  4. 再次抓包

变化观察

重新签名后:

  • Request Body 出现
  • Response 内容可见

这是一个可以直接验证的变化。


另一种情况:数据被编码

有时抓到的数据不是空,而是:

  • Base64
  • 压缩数据

在 SniffMaster 中可以看到字段:

  • IsBase64Body = true

处理方式

需要:

  1. 解码 Base64
  2. 或在工具中查看解码后的内容

如果是二进制协议,需要结合协议解析。


避免误判为空数据的一个技巧

在抓包界面中:

  1. 查看 Content-Length
  2. 查看响应大小

判断方法

  • Content-Length > 0 → 数据存在
  • 显示为空 → 可能是编码或未解析

可以通过导出数据进一步分析。

参考链接:https://www.sniffmaster.net/blog/139

相关推荐
stevenzqzq2 小时前
Android Jetpack Compose 列表开发指南:为什么你不需要再为底部 Item 写额外间距
android·android jetpack
撩得Android一次心动9 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose
是真的小外套10 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
用户20187928316712 小时前
一文讲透 Android Native Heap 监控原理:一间"只进不出"的仓库,和总部派来的侦探
android
开心猴爷12 小时前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
iOS开发上架哦13 小时前
iOS应用耗电测试:使用Energy Log、Keymob和Instruments进行性能监控与能源消耗分析
后端·ios
YB137513 小时前
Jetpack Compose 动画animate*AsState
android
高晶13 小时前
Android 通讯录应用开发实战:从零搭建 SQLite 数据持久化完整项目
android·设计模式·前端框架
万年咸鱼13 小时前
HTTPS 是如何保证传输安全的?
网络协议·安全·https
隐擎fox14 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip