news 2026/4/24 13:50:52

Charles抓包实战:从配置代理到成功拦截手机App请求的全流程记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Charles抓包实战:从配置代理到成功拦截手机App请求的全流程记录

Charles抓包实战:从配置代理到成功拦截手机App请求的全流程记录

调试移动端应用时,网络请求的抓取与分析往往是排查问题的关键。本文将带你一步步完成Charles的配置,实现手机App请求的拦截与查看。不同于简单的步骤罗列,我们将以一个真实的电商App登录请求为例,贯穿整个流程。

1. 环境准备与Charles基础配置

在开始之前,确保你的开发电脑和测试手机处于同一局域网下。这是后续代理配置能够成功的关键前提。Charles的安装过程相对简单,从官网下载对应操作系统的版本即可。

安装完成后,首次启动Charles会提示授予网络权限,务必点击允许。此时Charles已经开始监听本机的网络流量,但还无法捕获手机端的请求。我们需要进行几个关键配置:

# 查看电脑本地IP(后续手机代理需要) ifconfig | grep "inet " | grep -v 127.0.0.1

关键配置项检查清单:

  • Proxy → Proxy Settings → 启用"Enable transparent HTTP proxying"
  • Proxy → SSL Proxy Settings → 添加*:443以拦截HTTPS流量
  • Help → Local IP Address → 记录电脑在当前网络的IP地址

提示:如果公司网络有特殊防火墙规则,可能需要联系IT部门开放8888端口(Charles默认端口)

2. 手机端代理配置与证书安装

现在拿起你的测试手机,进入Wi-Fi设置,长按当前连接的网络选择"修改网络"。在高级选项中找到代理设置,选择手动代理并填入:

配置项
代理主机名电脑的本地IP地址
代理端口8888(Charles默认)

保存后,手机的所有网络流量将通过Charles转发。但此时尝试访问HTTPS网站可能会失败,因为我们还需要安装Charles的根证书。

在手机浏览器中访问chls.pro/ssl,这将下载Charles的CA证书。对于Android设备,下载后需要在设置中手动安装;iOS设备则需要在"设置→通用→关于本机→证书信任设置"中启用对Charles证书的完全信任。

# 伪代码演示HTTPS中间人原理 def charles_intercept(request): original_cert = get_server_certificate(request.host) forged_cert = generate_cert_with_private_key(original_cert) return forge_response(decrypt(request), forged_cert)

常见问题排查:

  • 如果无法下载证书,检查手机是否真的连上了代理
  • iOS 13+需要在"设置→通用→关于本机→证书信任设置"中额外启用
  • Android 7+可能需要将证书安装到系统证书区(需root)

3. 电商App登录请求捕获实战

让我们以"某电商App"的登录请求为例。配置完成后,在Charles中点击"Clear"清空现有记录,然后在手机上打开目标App并执行登录操作。

你会在Charles界面看到突然涌现的多个请求。如何识别哪个是登录请求?这里有几个技巧:

  1. 关注POST请求(GET通常用于获取数据)
  2. 查看请求路径中包含"login"或"auth"字样的
  3. 观察请求大小,登录请求通常带有较大的payload

找到疑似登录请求后,右键选择"Focus"可以过滤只显示相关域名的请求。点击"Contents"标签页,你可以看到:

请求部分:

  • Headers中的Authorization信息
  • 可能的URL编码或JSON格式的请求体

响应部分:

  • Set-Cookie字段
  • 登录令牌(通常为JWT格式)
  • 用户基本信息

注意:某些App会使用证书固定(SSL Pinning)技术防止中间人攻击。遇到这种情况需要额外处理,比如使用Frida等工具绕过。

4. 高级过滤与断点调试

当App的网络请求很多时,快速定位目标请求变得困难。Charles提供了强大的过滤功能:

# 在Charles的Filter栏可以输入: host:api.example.com && path:login

更高级的用法是设置断点(Breakpoints),允许你在请求发出前或响应返回前进行修改:

  1. 右键目标请求 → 选择"Breakpoints"
  2. 在Proxy → Breakpoint Settings中设置断点规则
  3. 重新触发请求,Charles会在指定位置暂停

断点调试典型场景:

  • 修改请求参数测试边界情况
  • 模拟服务器返回的不同状态码
  • 注入测试数据验证App容错能力

表格:常见HTTP状态码模拟测试建议

状态码测试目的预期App行为
401令牌过期跳转登录页面
403权限不足显示权限错误提示
500服务器内部错误显示友好错误并允许重试
502网关错误检查是否自动重连

5. 安全注意事项与性能优化

长期开启Charles代理会影响网络性能,建议:

  • 只在需要时启用全局代理
  • 使用Include/Exclude列表限制监控范围
  • 定期清理捕获的请求(File → Clear Session)

安全方面需特别注意:

  • 调试结束后及时关闭手机代理
  • 移除Charles根证书(特别是公司设备)
  • 敏感数据不要长期存储在Charles会话中

对于团队协作场景,可以将配置导出为.chls文件分享给同事:

# 示例Charles配置文件结构 { "proxy": { "port": 8888, "ssl_includes": ["*:443"] }, "breakpoints": [ {"enabled": true, "path": "/api/login"} ] }

在实际项目中,我发现最有效的做法是为每个测试场景创建独立的Charles会话文件,并配合注释记录关键发现。当遇到SSL Pinning时,可以尝试在越狱/root设备上使用工具绕过,或者联系开发团队获取测试专用构建版本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 19:25:17

企业级内网即时通讯怎么做?从 BeeWorks 看三大核心能力

企业级内网即时通讯与普通聊天软件有本质区别。它不仅要满足万人级并发下的消息低延迟,还要支持与 OA、ERP 等业务系统的深度集成,并在纯内网环境下保障数据绝对安全。本文以 BeeWorks 为例,拆解企业级内网即时通讯的三大核心能力。一、高并发…

作者头像 李华
网站建设 2026/4/24 12:14:15

DownKyi终极指南:5步快速掌握B站视频下载与管理

DownKyi终极指南:5步快速掌握B站视频下载与管理 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)…

作者头像 李华
网站建设 2026/4/22 19:16:28

终极NVIDIA Profile Inspector完整指南:三步解锁显卡隐藏性能

终极NVIDIA Profile Inspector完整指南:三步解锁显卡隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾想过,为什么同样的显卡配置,别人的游戏运行更流…

作者头像 李华
网站建设 2026/4/22 19:14:19

胡桃工具箱完整指南:5步掌握原神桌面助手核心功能

胡桃工具箱完整指南:5步掌握原神桌面助手核心功能 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …

作者头像 李华
网站建设 2026/4/24 12:02:23

微信聊天记录永久保存与智能分析:WeChatMsg完全指南

微信聊天记录永久保存与智能分析:WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…

作者头像 李华