Fiddler
一、简介二、下载安装2.1、配置支持https
三、抓包示例3.1、请求抓包简单示例3.2、拦截请求3.3、更改请求参数3.4、过滤出想要测试的域名网址3.5、查看请求时间3.6、移动端抓包简单示例
一、简介
Fiddler 是一个强大的 HTTP/HTTPS 调试代理工具,可以帮助开发者监控和修改客户端与服务器之间的网络请求和响应。它广泛用于抓包、调试和分析 HTTP 请求。
Fiddler 支持多种操作系统,如 Windows、macOS 和 Linux(通过 Mono),并广泛应用于 Web 开发、移动应用调试以及安全测试等领域。
Fiddler的主要功能
捕获 HTTP/HTTPS 请求: Fiddler 会充当 HTTP/HTTPS 请求的代理,能够捕获通过其代理服务器的所有流量。它能够显示 HTTP 请求头、响应头、请求体、响应体等详细信息。
HTTPS 解密: 对于加密的 HTTPS 流量,Fiddler 提供了 SSL 解密功能。通过安装根证书,Fiddler 可以解密并查看 HTTPS 流量的内容,包括加密的请求和响应数据。
修改请求和响应: Fiddler 允许用户修改 HTTP 请求和响应内容。用户可以编辑请求的头部信息、请求体、响应内容等,重新发送修改后的请求。这对于模拟不同的请求和测试服务器响应非常有用。
性能分析: Fiddler 提供详细的性能报告,帮助开发者分析请求和响应的时间,发现潜在的性能瓶颈。它可以显示各个请求的延迟时间、大小、下载速度等信息。
脚本和自动化: Fiddler 提供了一个强大的脚本引擎,允许用户使用 C# 编写脚本,自动化请求的发送、响应的修改以及其他调试任务。
会话保存和导出: Fiddler 可以保存捕获的所有会话数据,并导出为 .saz 格式或 .har 格式,以便后续分析和共享。
模拟响应: Fiddler 提供了 AutoResponder 功能,可以根据预定义的规则自动回应请求。开发者可以使用此功能模拟特定的服务器响应,进行测试和调试。
多平台支持: 虽然 Fiddler 是由 Telerik 开发并主要支持 Windows 系统,但也可以通过 Mono 在 macOS 和 Linux 上运行。对于开发者来说,Fiddler 提供了跨平台的支持,能够适应多种开发环境。
Fiddler 工作原理:
客户端发送请求: 当你在浏览器或其他应用程序(比如移动设备、API 客户端等)中发起 HTTP 或 HTTPS 请求时,客户端的请求通常会通过网络直接发送到目标服务器。
请求通过 Fiddler 代理:
为了捕获并调试这些请求,你需要在客户端配置 Fiddler 的代理地址和端口(默认是 localhost:8888)。这样,客户端会将请求首先发送到 Fiddler 代理服务器,而不是直接发送到目标服务器。在浏览器或应用程序中设置代理时,所有的请求都会先发送到 Fiddler,而不是直接发送到目标服务器。Fiddler 作为中间代理服务器,接收到这些请求后,会对请求进行处理(如修改、记录、过滤等)然后将请求转发给目标服务器。 Fiddler 代理转发请求: Fiddler 在收到请求后,会将请求转发到目标服务器。此时,Fiddler 就像一个“中介”或“隧道”,将客户端请求原封不动地转发给目标服务器。
服务器响应经过 Fiddler: 目标服务器处理请求并返回响应,这时响应会经过 Fiddler。Fiddler 会接收到服务器的响应数据,你可以查看响应的内容,甚至对其进行修改(如果需要)。
响应传递给客户端: 最后,Fiddler 会将服务器的响应数据返回给客户端。此时,客户端收到的响应是经过 Fiddler 代理转发的,但它通常不会感知到这一点。
Fiddler 的核心工作原理是通过充当 代理服务器 来捕获和调试请求与响应。所有通过Fiddler 代理的请求会先经过 Fiddler,然后再到达目标服务器,响应也会从服务器经过 Fiddler 后返回给客户端。这样,Fiddler 就可以对这些流量进行拦截、修改和记录。
二、下载安装
1、window直接一键安装即可
下载地址: https://www.telerik.com/download/fiddler
2、linux安装需要使用图形化界面,大部分服务器没有使用界面版的,这里不演示,建议使用tcpdump命令抓包
左下角 Capturing开启关闭抓包,默认开启,all processes可以用来筛选,51代表抓包的数量
2.1、配置支持https
1、tool --> options --> https 都勾上
2、点击actions,选择第二项,下载证书到桌面 3、以谷歌为例,点击谷歌设置,管理证书,导入 4、导入成功后,重新打开fiddler,此时就可以抓包https了
三、抓包示例
3.1、请求抓包简单示例
1、先清除没有用的抓包 2、发送个请求,查询ip 3、左侧抓包,图片标识的就是图片,我们的是第四个,可以看到请求参数和返回值
3.2、拦截请求
点击左下角此处会拦截请求,不向服务器发送请求 点击变成此图标是对应下方的before requests 在点击一次是after responses
或者更改 再次请求,左侧是红色的箭头,就代表了请求被拦截。
3.3、更改请求参数
3.4、过滤出想要测试的域名网址
3.5、查看请求时间
3.6、移动端抓包简单示例
前提:手机和电脑在同个局域网
配置代理:tools -->options -->connections 都勾上
开启后访问本地ip:8888端口 在手机上找到对应的WLAN网络,进行该网络代理的设置
操作步骤如下图所示:
手机系统设置–>WLAN–>修改网络–>高级选项–>代理–>选择手动–>主机名填入上一步IPv4–>端口填入默认的8888–>保存
手机安装证书
步骤如下:
1)在手机上选择任意浏览器,输入第二步中的设置的代理地址,host为即Fiddler安装电脑的IPv4地址,端口号即为默认的8888
2)手机端在1打开的网页中点击FiddlerRoot certificate下载证书
Android手机到这一步就可以了,苹果手机还需要在手机设置里去信任下载的证书,信任证书的操作步骤这里不做过多说明。
完成这两步后,我们即可以抓取手机发出的http请求,又可以抓取手机发出的https请求。在手机上打开今日头条APP,验证如下: