一、chrales抓包原理
1、chrales工具
- 1.1、chrales是一个协议代理工具,对于普通的http请求,因为数据本身没经过再次加密,因此作为代理可以知道所有客户端发送到服务端的请求内容以及服务端返回给客户端的数据内容。但是对于https请求,数据进行了加密处理,当我们需要活动请求的具体信息,需要对请求的数据进行解密。
- 1.2、为了实现https请求数据的获取,chrales需要做的事情就是对客户端伪装成服务端,对服务端伪装成客户端。具体
- 截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
- 接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容
- 1.3、一般情况下https是客户端对服务端做证书校验,所以需要再我们的手机上安装我们电脑chrales的证书,这样电脑的chrales才可以伪装成服务器进行数据传输
二、Charles下载和证书安装
1、 Charles下载安装
- 1.1、用下载的安装包正常安装即可。
- 1.2、chales安装后 不要先启动。把注册工具包解压的charles.jar放到Charles安装目录下lib文件夹,替换原来的Charles.jar文件。
2、证书安装
2.1、电脑端证书安装
1、 Help—>SSL Proxying
2、证书安装后可能不被信任导致https不被解析,设置证书信任
3、系统代理设置通过此”Proxy”:Proxy—>macOS Proxy
4、截取 HTTPS 网络封包配置,https的默认端口号是443:开启SSL代理,并添加信任地址
Proxy—>SSL Proxying Settings—>Add
2.2、手机端证书安装
1、手机证书链接:
https://www.charlesproxy.com/assets/legacy-ssl/charles.crt。这个链接不需要链接代理,使用浏览器打开下载安装
http://charlesproxy.com/getssl。手机端链接电脑代理,打开浏览器下载安装
2、手机端证书信任
iPhone:通用—>关于本机—>证书信任设置
Android:类似目录下。
二、简单使用
1、网上模拟
Charles可以模拟低网下的页面加载等情境
入口:proxy—>throttle setting
勾选 “Enable Throttling”,并且设置 Throttle Preset 的类型或者自己设置上传&下载的各项指标
2、断点
1、 Charles能够断到发送请求前(篡改Request)和请求后(篡改Response)。当前请求中选择需要调试的文件右键选择“BreakPoints”,开启断点
譬如:选择某一个请求后,右键勾选breakpoints,当再次请求这个URL时会跳到图二的Breakpoints界面,Edit Request中可编辑该URL&其他任意内容,点击Execute后,查看调试结果。
2、断点列表界面:Proxy—>Breakpoint Setting
3、抓包替换链接使用
1、选择页面点击跳转的链接
2、右键选择map remote,将自己需要重定向的链接复制在host,然后保存
3、重新退出,点击刚才页面位置,可以进入自己需要的链接中去。
这种方法一般用于测试端内和端外的衔接