Fiddler教程:学习如何使用这款功能强大的网络调试工具

技术 · 01-20 · 访问: 698 次

介绍

  • fiddler 是一款 HTTP 协议调试代理工具,它能够抓取记录本机所有 HTTP(S) 请求。其运行机制其实就是本机 127.0.0.1 上监听 8888 端口库的 HTTP 代理。
  • fiddler 无论对开发人员或者测试人员来说,都是非常有用的工具。

工作原理

fiddler 基本配置

fiddler 在没有配置之前是不可以抓取 HTTPS 的包的。

按照以下进行配置

  1. Tools -> HTTPS -> Decrypt HTTPS traffic。

image-20240110221038492.png

  1. 勾选后会弹出安装证书提示,根据提示进行安装即可。
  2. Tools -> Telerik Fiddler Options -> Connections。

image-20240110214636663.png

  1. 重启 fiddler

fiddler 抓取 IE 浏览器 fiddler 都可以进行数据抓取,但是使用其他的浏览器 fiddler 可能会抓取不到数据,需要而外设置代理。

设置过滤

右侧窗口拥有一个 filters,勾上 Use Filters 进行启用

Request Headers -> Show only if URL contains

  • 只显示 URL 中包含的请求

Hosts -> Show only Intrancet Hosts

  • 只显示内网的 host

Hosts -> Show only Internet Hosts

  • 只显示外网的 host

Hosts -> Hide the following Hosts

  • 隐藏下面的 host
  • 使用分号进行隔开

    192.168.0.1;xqtesting.blog.51cto.com;xqtesting.sxl.cn

查看响应信息

点击请求,右侧窗口上面的请求的信息,下面是响应的信息。

image-20240111212024861.png

app 端抓包

前置条件:

  • 手机和电脑在同一局域网

    • 打开 cmd命令行窗口通过 ping 查看手机和电脑是否在统一局域网下
  • 完成 fiddler 的基本配置,同 web 端抓包一致

这里的示例手机为 ios

  1. 查看电脑 IP 地址,打开 cmd命令行,输入:ipconfig,查看本地 IPv4 地址。

image-20240111221220721.png

  1. 打开浏览器搜索 本地 IPv4 地址 + 端口(fiddler 配置端口),点击 FiddlerRoot certificate 下载证书。

image-20240111221529865.png

  1. 安装证书,点击设置 -> 通用 -> VPN与设备管理 -> 点击已下载的描述文件 -> 点击安装

image-20240111223222225.png

  1. 开启证书,点击设置 -> 关于本机 -> 证书信任设置 -> 对下载的证书进行开启

image-20240111223557437.png

  1. 手机设置代理,点击设置 -> 无线局域网 -> 点击连接网络右侧的圆圈 -> 配置代理 -> 手动 -> 服务器(电脑 IPv4地址)、端口(fiddler 配置端口)

image-20240111223808960.png

在做好以上配置之后有的可能会出现网络无法访问的情况,

解决方法:

  1. 在电脑上下载 fiddler 插件,下载好后执行安装插件,之后重启 fiddler。

image-20240111224026258.png

  1. 手机端删除之前的证书,重新下载安装证书。

参考文章:

模拟低速网络

自定义限速配置:点击 Rules -> Customize Rules

Ctrl + F 输入“300”进行快速定位搜索

if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = "300"; 
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = "150"; 
}
  • 上传数据是 300毫秒
  • 下载数据是 150毫秒

模拟低速情况就是修改上面数字,修改好之后通过 Ctrl + S 进行保存。

设置好之后,需要进行启用,Rules -> Performances -> Simulate Modem Speeds,之后就会看到 Simulate Modem Speeds 是勾选状态。

篡改数据请求

打开 fiddler 命令行(左下角底部黑色框),在命令行中输入 bpu httpxxx[需要拦截的网址],之后回车。

image-20240112213813789.png

之后对需要拦截的网页进行提交数据,就能够在 fiddler 中查看到被拦截下来的数据。

image-20240112214403537.png

之后,直接对 value值进行篡改。

image-20240112214116584.png

对篡改过后的数据进行发送,点击绿色的按钮。

image-20240112214200805.png

结束拦截,在命令行中再次输入 bpu 回车即可。

利用 autoresponder 替换源资源

autoresponder 的作用:

  1. 右侧拥有一个 autoresponder 点击,勾选 Enable rules、Unmatched requests passthrough、Enable Latency 这三个。

image-20240112220225151.png

  1. 将需要替换的资源拖拽到右侧框中,我这里选着的是博客里的一张图片。

image-20240112220338560.png

image-20240112220428987.png

  1. 替换图片,根据下图点击 find a file 选择需要替换的图片。

image-20240112220605414.png

image-20240112220626688.png

  1. 点击保存,之后刷新页面,就会被替换了。

image-20240112220850458.png

image-20240112220902941.png

利用 fiddler 快速模拟 mock

创建一个 test_mock.txt 文件,内容:

{
    "code": "0",
    "name": "ganjue"
}

通过 AutoResponder 来对链接替换成 json 数据

image-20240115222750564.png

发送自定义请求

通过 Composer 可以发送自定义请求。

image-20240116212027996.png

点击 Execute 发送请求

image-20240116212640786.png

如果是 GET 类型,通过 url 拼接进行传递参数 ?name=&age=。

返回的数据乱码,将返回的数据设置 utf8。

image-20240116212737745.png

如果是 POST 类型,可以使用下面的 Request Body 传递参数。

问题

  1. 在代理之后,手机网络相对会比较慢,部分软件可以上网,部分软件不可以上网。
  2. 在打开 fiddler 后电脑网络变慢,甚至不能进行上网。

    1. 可能是证书问题,重新安装一下证书,Tools -> HTTPS -> 右侧 Actions -> Trust Root Certificate 。
fiddler 抓包
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
Theme Jasmine by Kent Liao