Fiddler 和 Charles 二次代理进行抓包

本贴最后更新于 552 天前,其中的信息可能已经事过景迁

一、Fiddler

1.1 Fiddler抓取HTTPS设置

1.1.1 配置证书

Tools菜单 —> Options —> HTTPS —> 勾选Decrypt HTTPS traffic选项。

勾选Decrypt HTTPS traffic选项:
Decrypt HTTPS traffic:意思是解密HTTPS流量(请求)。

然后会弹出一个对话框,如下图:

意思是:为了能够拦截HITTPS通信,Fiddler生成了唯一的根证书。您可以将Windows配置为信任此根证书,以禁止显示安全警告。单击 “是” 以重新配置Windows的受信任CA列表。

然后接着弹出对话框如下:点击 ,确认安装此证书。

是否确认将证书添加到计算机根目录列表?点击

最后提示:成功将Fiddler的根证书添加到计算机根列表中。

Snipaste20230522130121.png

1.1.2 勾选设置

当勾选Decrypt HTTPS traffic选项的时候,会提示你安装证书,安装好证书之后,HTTPS选项界面如下:

继续 勾选Ignore server certificate errors (unsafe) 选项:忽略服务器证书错误(不安全)。

之后点击OK就可以抓取HTTPS的请求了。

1.2 HTTPS选项界面说明

Fiddler Classic can decrypt HITTPS sessions by re-signing traffic using self-generated certificates. Fiddler可以使用自行生成的证书对流量进行重新签名,从而对HITTPS会话进行解密。
Capture HTTPS CONNECTs
建立HTTPS连接通信。(这个就是我们之前常看到有tunnel to...443请求的原因,他是HTTPS建立通信时候所发出的请求。我们使用Rules菜单 —> Hide CONNECTs操作,把这些请求隐藏了。)
Decrypt HTTPS traffic 解密HTTPS请求。
from all processes 抓取所有的HTTPS程序, 包括本机和手机 。
from browsers only 只抓取浏览器中的HTTPS请求。
from non-browsers only 只抓取除了浏览器之外的所有HTTPS请求。
from remote clients only 抓取远程的客户端的HTTPS,可以代表手机。
Ignore server certificate errors (unsafe) 忽略服务器证书错误(不安全)。一般勾选上。
check for certificate reyocation 检查证书吊销。
Certificates generated by CertEnroll engine 由CertEnroll引擎生成的证书。
Skip decryption for the following hosts 跳过以下主机的解密。
Trust Root Certificate 信任根证书。
Export Root Certificate to Desktop 将根证书导出到桌面。
Open Windows Certificate Manager 打开Windows证书管理器。
Learn More about HTTPS Decryption 了解有关HTTPS解密的更多信息。
Remove Interception Certificates 删除拦截证书。
Reset All Certificates 重置所有证书。

1.4 二次代理原理

1.4.1 代理过程(大概是这样)

  1. 客户端发送请求:客户端发起网络请求。
  2. 请求到达 Fiddler:客户端的代理设置已将 Fiddler 设置为代理服务器,请求被发送到 Fiddler。
  3. Fiddler 接收请求:Fiddler 接收到客户端的请求。
  4. 请求发送给上游代理:根据你在 Fiddler 中设置的上游代理(Clash),Fiddler 将请求转发给 Clash 上游代理。
  5. Clash 上游代理处理请求:Clash 上游代理接收到来自 Fiddler 的请求,按照其配置和规则进行处理,并将请求发送给实际的目标服务器。
  6. 请求发送给目标服务器:Clash 上游代理将请求转发给实际的目标服务器。
  7. 目标服务器处理请求:目标服务器接收到请求,并根据请求内容进行处理。
  8. 响应返回给 Clash 上游代理:目标服务器生成响应,并将其发送回 Clash 上游代理。
  9. Clash 上游代理发送响应给 Fiddler:Clash 上游代理将响应发送给 Fiddler。
  10. Fiddler 接收响应:Fiddler 接收到来自 Clash 上游代理的响应。
  11. 响应发送给客户端:Fiddler 将响应发送回客户端,作为原始请求的响应。

1.4.2 Gateway设置

在fiddler设置好捕获HTTP和HTTPS之后,再配置网管设置。

Gateway子菜单提供了用于配置 Fiddler Classic 高效访问网络方式的选项。

默认情况下,Fiddler Everywhere“链接”到系统的默认代理。网关设置允许您覆盖该行为。

  1. (推荐)使用系统代理 --默认选择。Fiddler 使用 OS 系统代理。一些浏览器和许多应用程序默认使用系统代理,并在它发生变化时收到通知。
  2. 手动代理配置 -指定上游代理字符串(第一个文本框)和代理旁路列表(第二个文本框)。

代理字符串— 要手动设置网关代理,请输入代理字符串。要直接输入代理配置字符串,请使用以下行。

proxyserver:8080

要以特定于协议的形式输入代理,请使用以下行。

http=httpproxy:8080;https=httpsproxy:8080

绕过列表——代理绕过列表支持以下值:

*.extranet.example.com;<local>;<-loopback>;
  1. 无代理 - 将所有流量直接发送到根服务器。

二、Charles

1.1安装证书及配置http&&https抓包

1.1.1 Proxy Settings(代理设置)

1.1.2 SSL Proxy Settings(SSL 代理设置)

1.2配置二次代理

1.2.1 设置Charles二次代理

菜单栏点击【Proxy】-->点击【external proxy settings...】

1.2.2 设置外部代理服务器

勾选【Use external proxy servers】-->左侧三个选项都打勾并将对应【Web ProxyServer】都设置成【127.0.0.1:7890】(clash端口是7890)-->点击【ok】-->重启Charles。

这三个分别对应http、https和SOCKS

之后重启charles即可。

三、手机端修改代理

手动修改代理设置,改成对应IP和端口,下载相关证书安装即可。

四、抓不到包怎么办

有些情况下死活抓不到包,这种情况下我们可以使用charles+clash+Proxifier强制进行抓包,如何强制抓包下篇帖子再出个教程。

  • Web
    22 引用 • 10 回帖
  • App
    35 引用 • 23 回帖 • 2 关注
  • Fiddler
    15 引用 • 15 回帖
  • Charles
    3 引用 • 2 回帖 • 1 关注
4 操作
xiaodingdang 在 2023-05-22 13:01:50 更新了该帖
xiaodingdang 在 2023-05-22 12:55:35 更新了该帖
xiaodingdang 在 2023-05-22 12:53:45 更新了该帖
xiaodingdang 在 2023-05-22 12:24:31 更新了该帖
回帖
请输入回帖内容 ...