前言
之前我们讲到过fiddler,wireshark
今天我们来讲讲另一款跨平台的抓包软件——Charles
准备工作
使用SwitchyOmega
在浏览器使用代理IP这个功能上,即使是市场占用率的chrome浏览器,在单个ip或者多个ip的切换上面操作相对是很麻烦。
所以这里为大家推荐一款叫做「SwitchyOmega」(全称为 Proxy SwitchyOmega)的浏览器插件。它是众多浏览器上的代理扩展程序,可以轻松快捷的管理和切换多个代理设置。
关注下 人家的github:https://github.com/FelisCatus/SwitchyOmega
或者直接在浏览器中的商店下载,这里我选择的是edge浏览器 优点嘛,不用xx上网。还是很香的。
点击打开Microsoft Edge 加载项
搜索SwitchyOmega
点击获取即可(因为我已经获取了 所以是删除)
Charles简介
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。 后面可以通过某些手段去除掉这十秒的等待时间。但即使你不付费也依然可以正常使用完整功能。
下载与安装Charles
直接打开上文官网
接着选择我们对应的系统即可
这里可以看到charles支持的系统比较多。这也是相对于fiddler比较良好的一点。
安装下来直接傻瓜式安装即可。
Charles的配置
移动端用charles抓包,先在电脑上安装charles软件。然后添加相关配置。
proxy settings
SSL proxying settings
为了可以进行https的抓包,一般需要配置一下ssl proxying settings。在菜单栏Proxy -> SSL proxying settings, 勾选Enable SSL Proxying,并添加location配置,如下:
安装证书
Charles的界面介绍
首先我们打开charles简单看看整个页面
可以看到 大体分为三个部分菜单栏
工具栏
主界面
而主界面又分以下几个部分
左侧:
右侧:
菜单栏和工具栏
菜单栏
File:
- new session:新建会话
- open session:打开会话
- clear session:清除会话内容(与导航菜单中得笤帚是一样的功能)
- close session:关闭会话
- save session:保存会话
- save session as:另存会话为
- import:导入
- export session:导出
- quiet:关闭软件
Edit:
- cut: 剪切某个会话
- Copy: 复制某个会话
- Paste: 粘贴某个会话
- Select All: 选择所有的会话
- Find in Session: 查找某个会话中的信息
- Find Next : 查询下一条
- Find Previous: 查询上一条
- Preferences: 外观等配置
Views:
视图菜单里的东西其实是非常常用的功能,下文介绍请求内容和相应内容会提到。
Proxy:
- Start/Stop Recording:开始/停止记录会话。
- Start/Stop Throttling:开始/停止节流。
- Enable/Disable Breakpoints:开启/关闭断点模式。
- Recording Settings:记录会话设置。
- Throttle Settings:节流设置。
- Breakpoint Settings:断点设置。
- Reverse Proxies Settings:反向代理设置。
- Port Forwarding Settings:端口转发。
- Windows Proxy:记录计算机上的所有请求。
- Proxy Settings:代理设置。
- SSL Proxying Settings:SSL 代理设置。
- Access Control Settings:访问控制设置。
- External Proxy Settings:外部代理设置。
- Web Interface Settings:Web 界面设置。
Tools:
- No Caching Settings:禁用缓存设置。
- Block Cookies Settings:禁用 Cookie设置。
- Map Remote Settings:远程映射设置。
- Map Local Settings:本地映射设置。
- Rewrite Settings:重写设置。
- Black List Settings:黑名单设置。
- White List Settings:白名单设置。
- DNS Spoofing Settings:DNS 欺骗设置。
- Mirror Settings:镜像设置。
- Auto Save Settings:自动保存设置。
- Client Process Settings:客户端进程设置。
- Compose:编辑修改。
- Repeat:重复发包。
- Repeat Advanced:高级重复发包。
- Validate:验证。
- Publish Gist:发布要点。
- Import/Export Settings:导入/导出设置。
- Profiles:配置文件。
- Publish Gist Settings:发布要点设置。
Window:
- Session1 *: 当前所在会话,可切换
- Error Log: 错误日志
- Active Connections: 正在进行访问的连接(通过这个可以查看charles是否正常运行)
Help:
- Registered to Registered to poppy:登录charles
- Unregister Charles:注销charles
- about Java:关于JAVA
- local lP address:IP地址
- SSL proxying:SSL代理
- Check for Updates:检查更新
- visit Website:访问网站
- About Charles:关于charles
工具栏
视图导航栏
Charles 主要提供两种查看封包的视图,分别名为Structure和Sequence。
两者区别:
- Structure: 此视图将网络请求按访问的域名分类
- Sequence: 此视图将网络请求按访问的时间排序
使用时可以根据具体的需要在这两种视图之前来回切换。
接口信息列表栏
在Structure 视图
下面是展示每个域名所抓到的数据包,点击【+】可查看具体详细信息 展开该host 域名下的所有请求
过滤器—Filter
可直接对过滤的数据信息进行过滤
请求内容区
Overview:展示当前请求的一个大体情况
content:展示当前请求的具体内容和服务器的相应内容
summary:展示当前请求的大体资源分布情况
chart:以表格形式告诉我们接口响应时间的分布情况
notes:笔记,点击后自己可以对当前请求记录一些东西,方便后续查看该接口的用途,可在overview中查看
请求内容导航栏
Headers:当前请求的头信息
Text:文本形式展示当前接口请求内容
Hex:十六进制展示,一般不使用
JSON:以json格式展示当前接口请求内容
JSON Text:以json text格式展示当前接口请求内容
Raw:源码展示当前接口请求内容
响应内容区
响应内容导航栏
Headers:响应的头信息
Text:文本形式展示响应内容
Hex:十六进制展示,一般不使用
JavaScript:以JavaScript格式查看响应内容内容
JSON:以json格式查看响应内容内容
JSON Text:以JSON Text格式查看响应内容内容
Raw:源码形式展示响应内容
Charles 使用教程
通过 Charles 进行 PC 端抓包
Charles 会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。只需要保证一下几点即可:
- 确保 Charles 处于 Start Recording 状态。
- 勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
通过 Charles 进行移动端抓包
手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:
- 使手机和电脑在一个局域网内,不一定非要是一个 IP 段,只要是在同一个路由器下即可。
- 电脑端配置: ○ 关掉电脑端的防火墙(这点很重要)。 ○ 打开 Charles 的代理功能:通过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying。 ○ 如果不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
- 手机端配置: ○ 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。 ○ 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。
- 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
- 完成以上步骤,就可以进行抓包了。
通过 Charles 进行 HTTPS 抓包
HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:
- 完成 HTTP 抓包配置。
- 电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
- 设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。
- 移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
- 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
- 完成以上步骤,就可以进行 HTTPS 抓包了。
参考文档: https://blog.csdn.net/wild_girl/article/details/118874505https://zhuanlan.zhihu.com/p/351167790