charles工具使用

时间:2022-07-23
本文章向大家介绍charles工具使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、基本设置与界面

1.初次打开

charles是需要破解以后才可以持续使用的。在此附上下载破解文件链接(选择对应版本的破解jar包下载):https://www.zzzmode.com/mytools/charles/

为了让所有浏览器(或者网络应用)的数据送达到charles手中,您必须设置charles为代理服务器,但每次开启或关闭charles后,都要重新配置,如果您想偷点懒,可以在Proxy->Proxy Settings弹出的对话框中配置行为。

HTTP Proxy:http请求

SOCKS Proxy:socks请求。

Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。而浏览网页时的代理服务器通常是http代理。

能浏览网页,不等于一定可以通过Socks访问Internet,socks要比http宽松的多

2.session

charles最重要的功能就是记录,所有的请求和响应都会记录到session中,供大家稍后检查和 分析。打开菜单栏中的File,在这里可以管理您的session,包括新建,打开,清空等等。

(每次启动charles,都会自动创建一个新的session)

2.1关闭记录,Charles会正常通过所有请求,但它们不会记录在session中,可以点击下面来关闭记录

3.结构视图和顺序视图

两个选择'Structure'和'Sequence'

charles提供了两种显示方式,你可以在view->structure/sequence中切换,也可以在界面中直接切换

Structure:树图显示

Sequence:时间顺序展示

4.筛选session请求记录

可以通过右键host名,会出现一系列对应的操作,比如保存和对焦

charles:“对焦操作可以让过滤掉没用的信息,比如我只想关注baidu,我可以对http://bd.iegourl.com进行focus,这样那些非百度的host就会被折叠,就会出现下面这样

5.chart

chart主要记录了一个资源的生命周期:从请求到等待到响应请求,不仅如此,它还将相关资源分组,比如下面图

6.SSL

对https抓包,需要安装安全证书Charles Root Certificate,在抓取数据时,你很可能会收到关于证书的警告,那很正常,你只需要信任它即可,如果你想一劳永逸,永久信任Charles Root Certificate的话,你可以按照下面的链接来操作”

信任Charles Root Certificate:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

SSL的工作原理,其实我是中间人,替浏览器查看服务器的证书并签名,但同时会把自己的证书发给浏览器,因此会出现警告,你需要添加到信任序列才能正常使用

7.负载测试

8.弱网测试

charles自带弱网工具,在Proxy->Throttle Settings下,使用前要记得勾选Enable Throttling

如果你想指定网站,可以勾选下图中的 Only for selected hosts,然后在对话框的下半部分设置中增加指定的hosts项

Throttle Settings 视图中的选项含义如下:

  1. Bandwidth:带宽
  2. Utilistation:利用百分比
  3. Round-trip:往返延迟
  4. MTU:字节

9.断点设置

打开Proxy->Breakpoints Settings,勾选 Enable Breakpoints就可以启用断点模式,选择Add,然后填入需要监控的Scheme、Procotol、Host和Port等信息,这样就达到了设置断点的目的。或者可以在某个想要设置断点的请求网址上右击选择Breakpoints来设置断点

也可以通过选择请求记录,点击右键选择断点

10.反向代理

反向代理就是客户端想访问服务器,他会优先访问代理服务器,当proxy关口拿到用户请求的时候会转发到代理服务器中的随机某一台。而在用户看来,他只是访问了Proxy服务器而已。也就是说,反向代理就是服务器的代理,客户端根本不知道服务器的存在,只知道代理服务器的存在

charles可以在Proxy→Reverse Proxies Settings找到这个功能,这可是很常用的,特别是对于本地开发且需要域名的情况下

下图意思将本地3306端口映射到www.baidu.com域名的80端口

11.使用手机(需要保持同一网段)

打开Proxy->Proxy Settings,填入代理端口8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理。(prot可以自己设置没有被占用的端口)

然后在手机wifi网络中添加代理,输入电脑IP和charles的端口号:8880,就可以抓手机上的网络数据了

【抓取https】

charles靠一张证书就解决了加密问题,如果使用的是电脑,按照下面这样安装证书(选择安装到本地计算机受信任的根证书下):

如果使用的是手机:

手机浏览器访问:chls.pro/ssl,下载安装证书即可

二、重定向

Charles 的重定向功能分 Map Remote 和 Map Local 两种,

Map Remote 是将指定的网络请求重定向到另一个网址请求地址

Map Local 是将指定的网络请求重定向到本地文件,下面用一个例子具体说明一下。

mapLocal:

1.先保存接口返回数据

2.对保存到本地的返回数据进行修改,保存

3.设置charles进行map local

4.此时再次请求

在 Charles 的菜单中,选择 “Tools”->”Map Remote” 或 “Map Local” 即可进入到相应功能的设置页面。

Map Remote:

1.设置参数Toos->Map Remote

查看访问结果,你会发现,www.baidu.com会被重定向到www.sougou.com

三、Rewrite功能

Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。

1.打开Tools->Rewrite,对内容进行替换,下面把页面中“我的关注”替换为吖咪测试关注

2.再次申请百度

就会展示修改成功以后的内容