浏览器抓包和调试神器——Fiddler入门

简介

Fiddler 是一款 C# 实现的浏览器抓包和调试工具,Fiddler 启动后作为浏览器和服务器之间的代理,从中监测浏览器和服务器之间的 http/https 级别的网络交互

主要功能有:

  1. Web 会话操作
    轻松编辑 Web 会话,只需设置一个断点即可暂停会话处理并允许更改请求/响应。撰写自己的 HTTP 请求并通过 Fiddler 运行。
  2. 性能测试
    Fiddler 可以一目了然地看到“总页重”,HTTP缓存和压缩,用“标记任何大于 25kb 的未压缩响应”等规则隔离性能瓶颈。
  3. 自定义免费工具
    受益于丰富的可扩展模型,从简单的 FiddlerScript 到可以使用任何 .NET 语言开发的强大扩展。
  4. 安全测试
    解密 HTTPS 流量并使用中间人解密技术显示和修改 Web 应用程序请求。配置 Fiddler 以解密所有流量,或仅解密特定会话。
  5. HTTP / HTTPS 流量记录
    使用 Fiddler 记录计算机和 Internet 之间的所有 HTTP(S) 流量。调试几乎所有支持代理的应用程序(IE, Chrome, Safari, Firefox, Opera 等)的流量。
  6. Web 调试
    调试来自 PC,Mac 或 Linux 系统和移动(iOS 和 Android)设备的流量。确保在客户端和服务器之间传输正确的 Cookie,headers 和 cache。支持任何框架,包括.NET,Java,Ruby 等。




安装

Fiddler 官网下载

Fiddler 汉化下载

浏览器设置代理

一打开 Fiddler 就会自动设置系统代理,Chrome 或 Chrome内核的浏览器(如360浏览器)可直接使用,而 FireFox 则需要自行设置代理。

隐藏建立通道连接和重定向

Rules → 勾选 Hide CONNECTs 和 Hide 304s

默认解码


响应体常常需要解码才能看懂,点上该按钮默认解码

捕获 HTTPS

HTTPS = HTTP + TLS/SSL,相当于 HTTP 的加密。

一开始会显示 HTTPS decryption is disabled. Click to configure...

  1. Tools → Options → HTTPS → 勾选 Capture HTTPS CONNECTs → 勾选 Decrypt HTTPS traffic → 点开 Actions → 重置证书 Reset All Certificates
  2. 关闭Fiddler → 安装Fiddler证书 → 重新打开
  3. Tools → Options → HTTPS → MakeCert engine → 设置为 MakeCert
  4. Actions → Export Root Certificate to Desktop 导出证书到桌面
  5. Actions → Open Windows Certificate Manager → 右键受信任的根证书颁发机构 → 所有任务 → 导入

若不行可查阅参考文献5、6
不用的话把 Decrypt HTTPS traffic 关掉,以防影响正常浏览页面




快捷键

删除全部请求:Ctrl + X

仅保留选中请求:Shift + Del(Edit → Remove → Unseleted Sessions)

重放选中的请求:R




快速入门

保存 HTTP 请求

测试页面 → 选中该请求 → 右键 → Save → Selected Sessions → as Text…


效果



HTTP 请求报文

HTTP 请求报文组成:请求行、请求头部、空一行、请求体(不一定有)



清除缓存

Tools → Clear WinINET Cache 和 Clear WinINET Cookies

或直接点击菜单栏上的 Clear Cache



添加注释


添加注释可在 Comments 处看到,方便 Export Sessions 后其他人员的理解.



重放


直接点击:重放

快捷键:R

无条件重放:Ctrl+ 点击

多次重放:Shift + 点击



删除


从上到下分别为:

  • 删除所有
  • 删除图片
  • 删除通道连接
  • 删除非成功 200
  • 删除非浏览器
  • 留下完成&未标记
  • 重复响应体

删除全部请求:Ctrl + X



断点


底部状态栏,点击图上的地方,可设置断点

  • 点 1 次:请求前断点
  • 点 2 次:响应后断点

Replay 可实现发送请求到服务器前中断

Go 继续发送



指定进程


拖动到想抓取的进程上,如浏览器



查找



保存


File Save

或菜单栏的 Save

可用于给后端提交 BUG 等,同时保留注释、查找结果等信息。



文本编/解码


常用的 get 请求需要用到 URLEncode



本机网络信息


右上角的 Online 可显示主机 IP 等信息,无需再执行 ipconfig 查看。



请求 IP

Rules → Customize Rules → Ctrl + Fstatic function Main() → 添加FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");Ctrl + S 保存 → 重启 Fiddler

在最后一列可看到请求IP。每一列可以拖动顺序



添加响应时间

Rules → Customize Rules → Ctrl + Fclass Handlers → 添加以下代码 → Ctrl + S 保存 → 重启 Fiddler

function BeginRequestTime(oS: Session)
{
    if (oS.Timers != null)
    {
        return oS.Timers.ClientBeginRequest.ToString();     
    }
    return String.Empty;
}


 public static BindUIColumn("Time Taken")
           function CalcTimingCol(oS: Session){
             var sResult = String.Empty;
             if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))
             {
               sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).ToString();
             }
             return sResult;
           }




命令行 QuickExec

左下角的黑条就是

测试页面



包含文本 ?

包含某文本的请求

?wubaiyi



响应体大小 > 或 <

响应体大于 40kb 的请求

>40k



状态码或请求方法 =

筛选重定向的请求

=301

筛选 POST 方法

=POST



主机 @

筛选主机

@wubaiyi.com



粗体标记 bold

如果 url 包含目标字符串,则用粗体标记,未来生效。

先执行,再访问测试页面,可以看到都标粗了

bold wubaiyi


再执行一次清除标记

bold



设断点:RequestURI 含字符串 bpafter

当 RequestURI 包含指定字符串,中断响应

bpafter /favicon.ico


再执行一次清除标记

bpafter



设断点:状态码 bps

状态码为 404 时设断点

bps 404

再执行一次清除标记

bps



设断点:请求方法 bpm

请求方法为 POST 时设断点

bpm POST

再执行一次清除标记

bpm



设断点:URIs 含字符串 bpu

URIs 包含字符串

bpu wubaiyi


再执行一次清除标记

bpu



替换 urlreplace

用不同的字符串替换 url 中的任何字符串

urlreplace SeekStr ReplaceWithStr

再执行一次清除标记

urlreplace



过滤 Content-Type allbut

仅保留类型头包含指定字符串的会话

allbut xml

allbut java



选中包含内容 select

select image
select css
select htm
select ui-comments slow
select ui-bold * 
select ui-comments \*
select @Request.Accept html
select @Response.Set-Cookie domain




自动响应器 AutoResponder

可用于拦截响应修改规则

勾选 Enable rules 使规则生效

勾选 Unmatched requests passthrough 忽略不匹配请求



修改图片

测试页面 → 右键某张图片 → 复制图片地址 → 编辑规则 → Save



可以看到原页面就替换好了




安卓抓包

配置

Tools → Options → HTTPS → 勾选【Ignore server certificate errors (unsafe)】

Tools → Options → Connections → 勾选【Allow remote computers to connect】

重启 Fiddler



设置手机代理

让手机和电脑在同一个局域网下

查看 IPv4 地址方法有:

  • CMD 输入命令 ipcofig
  • Fiddler 右上角的 Online
  • 查看共享网络

修改手机WIFI的网络设置


手机浏览器访问:http://IPv4地址:Fiddler端口号,如 http://192.168.12.171:8888

点击【FiddlerRoot certificate】下载证书并打开安装证书,用途为【VPN和应用】




遇到的坑

1. 浏览器无法打开页面

取消勾选 Options → HTTPS 的 Decrypt HTTPS CONNECTs




参考文献

  1. Fiddler - Free Web Debugging Proxy
  2. QuickExec 官方文档
  3. Fiddler抓包工具实战全网最全最细教程,没有之一【柠檬班】
  4. Fiddler抓包的一些坑的解决办法
  5. fiddler添加查看IP和响应时间
  6. Fiddler无法抓取HTTPS的问题,Fiddler证书无法安装终极解决方案
  7. Fiddler抓取HTTPS最全(强)攻略
  8. fiddler怎么一条保留其它全部删除
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XerCis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值