美文网首页
Charles抓包工具教程

Charles抓包工具教程

作者: honey_liu | 来源:发表于2020-07-13 17:58 被阅读0次

charles 开发攻略

1 Charles 简介

Charles 是一个支持多平台的 HTTP 代理器、HTTP 监控工具,它能够让开发者查看本地机器与互联网之间的所有 HTTP 以及 HTTPS 传输数据。包括请求数据、响应数据 以及 HTTP 头部信息(包括 Cookie 和缓存信息)。

1.1 Charles 主要功能

支持SSL代理,可以截取分析SSL的请求;

支持模拟慢速网络;

支持重发网络请求,方便压测调试;

支持修改网络请求参数;

支持网络请求的截获和动态修改。

1.2 Charles 基本原理

Charles实现对HTTPS进行抓包使用的原理——中间人技术(man-in-the-middle)。Charles会动态生成一个使用自己根证书签名的证书,Charles接收服务器的证书,而客户端/浏览器接收Charles生成的证书,以此客户端和Charles之间建立HTTPS连接,Charles和Web服务器之间建立HTTPS连接,实现对HTTPS传输信息的抓包。

1.3 使用Charles抓取设备的请求

1.3.1 PC配置方式

首先在电脑上安装Charles证书:菜单栏找到 Help - SSL Proxying - Install Charles Root Certificate 安装证书。

并将证书设置为信任:

1.3.2 无线端配置方式

如需抓取手机端的HTTPS请求,需要在手机上安装相应证书:

打开 iPhone 设置 - 无线局域网,将手机网络连接到与电脑相同WiFi。点击WiFi详情按钮设置HTTP代理,将其改为手动,然后填写Charles所在电脑的代理IP地址,端口号默认为8888

找到Help - SSL Proxying - Install Charles Root Certificate on a Mobile Device or Remote Browser.. 然后用浏览器打开提示上面的地址下载证书。

打开手机设置—通用—描述文件与设备管理下,找到证书文件按照提示点击安装

安装完成后证书默认是没有被信任的,需要开启信任。具体操作步骤:通用—关于本机—证书信任设置:

回到Charles,因为Charles默认不监听HTTPS请求,所以还需要开启SSL代理功能:在Proxy - SSL Proxying Setting中激活,即勾选 Enable SSL Proxying 选项。并添加域名端口,匹配想要监听的域名端口,这里可以添加*:443匹配全部HTTPS请求:

然后就可以随意抓HTTPS包啦!

2 功能介绍

2.1 视图模式

Charles支持两种试图模式,Structure和Sequence:

Structure:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

Sequence:可以很清晰的看到全部请求,不用一层一层的去点开,这里是以数据请求的顺序去执行的,也就是说那个请求快就在前面显示。

2.2 重复请求

使用Repeat Advanced 还可以指定请求次数,可以用来对接口进行压测。

2.3 过滤网络

对网络请求进行过滤,只监控向指定服务器发送的请求。

在菜单栏选择 Proxy - Recording Setting。然后选择Include,选择添加一个行,然后填入需要监控的协议、主机地址、端口号,即可监控指定服务器的请求。

2.4 Focus功能

使用 Focus 功能指定想要查看的域名,可以避免这个域名相关的请求淹没在茫茫请求当中。 对想要Focus的域名,右键菜单-选择Focus,这个域名就会添加到Focused列表,可以在这里找到:

2.5 控制网速

在Charles的菜单上,选择Proxy-Throttle Setting,在弹出的对话框中,可以选择勾选上Enable Throttling,并且可以设置Throttle Preset的类型。

如果只想模拟指定网站的慢速网络,可以再勾选图中Only for selected hosts选项。

2.6 构造请求

点击compose按钮,就可以修改该请求的任何信息,包括URL、端口,参数等,执行就得到想要的报文了:

2.7 断点拦截

首先开启断点功能,然后再到想要设置断点的请求上,右键设置一个断点,如图所示:

再次发起这个断点加入到断点设置面板,可以根据需要修改请求报文然后执行:

执行后将会拦截响应,同样可以在响应返回到客户端之前根据需要修改响应报文:

再次执行后,响应将被修改。

2.8 重写功能

Rewrite 可以通过正则表达式匹配的方式——添加、修改、删除请求或响应中的头部header参数、主体内容、请求参数、响应状态等等功能强大、配置简单。

例如用Rewrite注入一个Script脚本,在菜单栏找到Tools-Rewrite 打开设置面板

我们想要的脚本就被写到页面上了,效果如下:

2.9 Map Local/Remote

将某个请求进行重定向,用重定向后的内容来响应请求的内容

3 实战应用

相关文章

网友评论

      本文标题:Charles抓包工具教程

      本文链接:https://www.haomeiwen.com/subject/ttclbftx.html