Fiddler Classic抓包工具的使用

一、是什么?

Fiddler 相当于一个 “代理”,浏览器访问浏览器页面时,就会把HTTP请求先发给Fiddler,Fiddler 再把请求转发给浏览器的服务器,当浏览器服务器返回数据时,Fiddler拿到返回数据,再把数据交给浏览器。
在这里插入图片描述

二、为什么用

线上接口请求转发到本地Debug调试

三、一些配置

HTTPS
刚下载安装好后,是默认不支持抓取HTTPS协议的,要想抓取HTTPS要添加以下配置。(仅使用HTTP则无需配置)
先点击左上角的Tools-Options-HTTPS
在这里插入图片描述

然后再选中这三个选项,
在这里插入图片描述

接着点击Actions-Export Root Certificate to Desktop,此时桌面上会出现这个文件:
在这里插入图片描述
在这里插入图片描述

我们关闭Fiddler,接着我们需要在浏览器上导入证书(上面这个文件),以谷歌浏览器为例:点击设置-安全和隐私设置-安全-管理证书:
在这里插入图片描述

在受信任的根证书颁发机构里导入桌面上生成的证书即可,最后我们重新打开Fiddler,就可以抓取HTTPS协议了
在这里插入图片描述

HTTP:
依次打开Tools>Options>Connections,勾选Allow remote computers to connect,同时记住fiddler listen on port的端口号,默认8888,如下图
在这里插入图片描述

四、如何用?

以Debug 一个线上系统为例子,我想知道用户登陆时的流程:
1.确定源地址和端口号
首先,已知线上运行的前端项目请求的不是本地服务,代理的作用就是把请求拦截了,将地址和端口号改为本地运行的服务,线上的前端项目: http://172.16.2.245:18080/ ,系统向后端服务的请求地址是/sys/api/v1.0开头

2.确定后端地址和端口号、编写脚本
我的本地服务是 localhost:18181
那么在fiddler classic中,找到脚本FiddlerScript—OnBeforeRequest,在向后端发送请求前,将ip和端口号改为我们的本地地址和本地端口:
在这里插入图片描述

脚本内容就在static function OnBeforeRequest(oSession: Session)最下面再添加一个if条件:
if (oSession.fullUrl.ToLower().Contains(“/sys/api/v1.0”)) {
oSession.host = “localhost”;
oSession.port = 18181;
}
3.最后保存脚本
在这里插入图片描述

4.开启代理和关闭代理
左下角的capturing为开启状态,开启或关闭点击此处即可。
在这里插入图片描述

5,实际效果
这样就把线上的请求,拦截到本地运行的服务,进行debug。

五、其他功能

fiddler过滤功能
fiddler抓包时会把所有的请求都抓取,这时就需要进行过滤。fiddler右边有个Filters,打开该页面后,勾选use Filters,然后根据需要设置过滤规则,例如我选中show only Internet host ,然后在输入框中输入需要显示的网址,再点击actions>run filterset now即可实现过滤,如图所示
在这里插入图片描述

fiddler设置断点方法
第一种:打开Fiddler 点击Rules-> Automatic Breakpoints ->Before Requests(这种方法会中断所有的会话)消除命令 点击Rules-> Automatic Breakpoints ->Disabled
第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)

FAQ

Q1 为什么有的浏览器可以直接使用Fidder抓取请求?
Fiddler打开之后默认是可以抓取到Chrome/IE浏览器的请求的,这是因为Fiddler默认会勾选“Act as system proxy on startup”,此选项会在Fiddler启动的时候作为系统代理:
在这里插入图片描述

我们会发现系统代理设置已经被Fiddler篡改,端口和Fiddler中保持一致:
在这里插入图片描述

这也就是为什么Fiddler启动之后默认可以抓取到Chrome/IE的请求,而Firefox浏览器使用的是单独的一套代理系统,如果Firefox也想默认抓取到,打开火狐浏览器的连接设置,选择使用系统代理即可。
在这里插入图片描述

Q2 为什么代理会自动掉线?报错:
在这里插入图片描述

原因:有其他软件抢占、修改了系统的默认代理

如安装了深信服VPN等软件,后台程序会定时的尝试抢占系统的默认代理,所有FidderClassic会在使用中不时掉线。
解决方案:
通过安全工具-高级工具的火绒剑监控代理变化,点击:系统-过滤-路径,添加包含关键词:ProxyOverride
在这里插入图片描述

当Fiddler代理再次被改动时,查看记录的进程信息:
在这里插入图片描述

找到该进程并关闭

### 配置 Fiddler 捕获 Android 设备网络流量 #### 设置 Fiddler Classic 上的配置 为了使 Fiddler 能够捕获来自 Android 设备的 HTTP 和 HTTPS 流量,需确保已在 Fiddler 中进行了适当设置。具体操作包括确认 BouncyCastle 已被指定为证书生成工具,因为这有助于创建与较新版本 Android 兼容的有效期不超过两年的证书[^4]。 对于 HTTPS 抓包功能,在 Fiddler 的 `Tools` -> `Options` -> `HTTPS` 页面内应勾选允许 HTTPS 解密选项,并选择仅从远程设备抓取流量 (`From Remote Only`) 以便专注于移动设备的数据流。 #### 安装根证书到 Android 设备 为了让 Android 认可由 Fiddler 创建的安全连接,必须将 Fiddler 的根证书安装至 Android 手机上。通常情况下,可以通过访问 http://ipv4.fiddler:8888 或者 http://ipv6.fiddler:8888 来下载该 CA 根证书文件[^3]。一旦完成下载,则按照提示将其添加为受信任的手动安装的CA认证机构之一[^2]。 #### 修改 Android 设备 Wi-Fi 连接属性 最后一步是在 Android 设备上的Wi-Fi设置里手动设定代理服务器参数。这里可以选择“单一代理解”模式并将主机名设为运行着 Fiddler 的计算机 IP 地址;端口号则保持默认值即8888不变。 通过上述步骤之后,当 Android 应用程序发起任何基于 Web 的请求时,这些通信都将经过 Fiddler 并在那里被捕获下来供进一步分析之用[^1]。 ```bash # 查看本机IP地址用于填写Android WiFi代理中的Host字段 ipconfig ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值