抓包工具之Charles(windows)

激活码:  https://www.zzzmode.com/mytools/charles/

 

官方地址:https://www.charlesproxy.com/

PC端如何配置才能抓取到https请求:否则打开浏览器会提示不安全的访问

1. 安装证书:在顶部工具栏中选择“help--Install Charles CA SSL Certificate”;

 

 

 

2. 然后会弹出证书信息,选择安装证书,接下来将证书存储改为:受信任的根证书颁发机构,接下来都点“下一步”;

 

 

 

.最后一步前可能会弹一个安全警告的弹窗,点“是”,最后完成;

 

注意点:

1) 存储位置为"本地计算机"

2) 证书存储的时候, 要选择"将所有的证书都放入下列存储"

3)选择证书存储"受信任的证书颁发机构"

 

否则会出现https无法正常抓取的问题

 

3. 修改charles的proxy settings:选择“Proxy--Proxy Settings”,弹出proxy设置选项卡,勾选“Enabling transparent HTTP proxying”;

 

 

 

 

4. 再选择“Proxy—SSL Proxy Settings”,勾选“Enable SSL Proxying”,在Location部分选择add,如下图所示,host中填“*”,port中填“*”,表示任务域名的数据;

 

 

 

5. 保存成功后,这时访问PC浏览器,再去抓取https的请求,就能正常查看里面的数据信息了。

手机端如何配置才能抓取到https请求:

1. 先打开Charles 的代理功能:在菜单栏上选择“Proxy -> Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying”;

 

 

2. 获取 Charles 运行的电脑的 IP :在Charles 的顶部菜单,点击“Help -> Local IP Address”,即可在弹出的对话框中看到 IP 地址;

 

 

3. 在手机上无线局域网配置中,选中所连的wifi,选择手动配置代理:服务器主机填写charles运行所在的电脑IP,端口号默认都填写8888,保存;这个时候只能抓取到手机端的http的请求,还需要以下设置才能抓到https请求;

 

 

 

4. 在Charles 的顶部菜单,点击“Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser”;

 

 

 

然后会出现一个弹窗,点击弹窗中“确定”;

 

 

 

5.打开手机浏览器,输入chls.pro/ssl,访问该地址会下载charles证书,将此证书安装到手机上;

6.此时用手机访问各请求时,会先在电脑运行的charles中弹出一个对话框请求确认连接,点击确认允许;

 

 

 

7.这样便可以在安卓手机端抓取https请求了。

8.如果是IOS手机,还需要在手机中开启证书信任:进入“设置—>通用—>关于本机—>证书信任设置”,开启刚才安装的charles证书即可。

 

重要设置项:

1. 安装证书

Help -> SSL Proxying -> Install Charles Root Certificate

 

2.设置https端口

菜单栏 Proxy -> SSL Proxying Settings 打开 SSL Proxying Settings配置面板,

因为HTTPS是走的 443端口,所以这里设置一个443端口,*代表匹配所有,意思为:代理所有域名的443端口

 

 

[使用]

1.请求转发 Tools > Map Remote

场景:例如在获取微信链接参数的时候, 可以在访问该链接的时候,变成访问本地的某个接口, 这样就可以将想要的数据保存到本地来使用

Tools > Map Remote 配置对应的远程服务于本地服务(可以使用flask搭建一个web服务来接收)

 

 使用场景:

1. 将线上资源映射到本地开发服务器 www.com -> localhost,以此实现本地调试线上。

2.将线上服务调用的参数不用复制,粘贴到postman等工具上,在本地环境进行调试, 使用代理即可解决 

 

 

2.Tools > Map Local

Map Local 工具能够将请求映射到本地文件,也就是将本地文件作为某个请求的返回。Map Local 和 Map Remote 相辅相成,一个映射到服务器,一个映射到本地文件。

如果说 Map Remote 是大面积覆盖,那么 Map Local 就是单点爆破。这对快速调试某个线上静态资源很方便。

💡 比如把某个线上 js 文件下载到本地,修改修改,然后通过 Map Local 这个本地文件映射就可以直接看到效果进行验证。不必走完 CI,CD 这一套焦头烂额的等待了。

 

 3.Tools > Rewrite

Rewrite 工具能够让你重写覆盖请求的任意部分,包括 request 和 response 的 header 和 body。

 

下面是一些使用场景:

  • 重写 response header 实现 cors 跨域
  • 重写 cookie 实现一些校验
  • 重写 body 实现类似 Map Local 的效果

 

4.Tools > DNS Spoofing

DNS 欺骗工具可以将一个域名映射到一个 IP 地址下,和系统 hosts 文件的作用一样。

 

实际上,在 Map Remote 里配置 example.com -> 20.205.243.166 能实现相同的效果。

💡 有了这个功能,我卸载了 hosts 管理软件。

 

5.Proxy > External Proxy

Charles 本身是一个代理,它还支持再配一层外部代理,通常是 VPN。请求会先过 Charles,再走外部代理。

💡 例如,想要抓包的话需要开启 Charles 的 macOS Proxy,此时 Charles 会自动设置系统代理。

 

 

 


 

 

一般会遇到下载的证书并不能直接进行安装,这里写一下华为手机的安装流程:

1. charles中将证书保存在本地,保存时直接选择.cer格式,将证书通过微信等方式拷贝到手机中(推荐)

Help > SSL Proxying > Save Charles Root Certificate

 

或者手机上访问 chls.pro/ssl进行下载(偶尔出现无法访问的情况), 并修改后缀为cer

2.找到证书并安装

设置 > 安全 > 更多安全设置 > 加密和凭证 > 从存储设备安装 > CA证书   选择并安装即可

 

 

//////////////////////////////////////////////////   注册码-解除限制

一般安装成功之后的使用是试用版本, 打开过几分钟就需要关闭, 这里可以使用在线站点进行注册码的生成, 然后在 Help > Register Charles中填写相应的信息即可

https://www.zzzmode.com/mytools/charles/

 

 3.有时候 我们希望在有一个手机上安装了一次证书,在不同的电脑端也不需要换Charles证书的时候, 就需要将这个证书拷贝到多个设备中即可

操作步骤:

1) 一般charles的默认根证书存放位置是C:\Users\用户\AppData\Roaming\Charles\Data\ca目录, 你也可以使用Everything文件搜索工具,搜索charles-proxy-ssl-proxying-certificate.pem来定位具体位置

 2)将已经可以正常链接手机并访问https的这台电脑上,这个证书复制拷贝到其他电脑上即可

 注:可以备份下这三个文件,以后重装吧系统就可以拿出来使用, 不用重复在电脑上安装证书了

 

 

常见问题:

1.如果安装证书之后, 出现“时钟太快”或证书不生效,请尝试重启电脑

 

更多参考:

 

posted @ 2023-01-16 17:31  X-Wolf  阅读(2132)  评论(1)    收藏  举报