Fiddler 简介
Fidder是一款免费、灵活、操作简单、功能强大的HTTP代理工具(客户端和服务器之间的代理),是目前最常用的抓包工具之一。它能够记录客户端和服务器之间的所有请求,可以抓取所有的HTTP/HTTPS包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等。
Fiddler工作原理
客户端服务器进行消息交互时,HTTP客户端设置Fiddler作为代理,把HTTP请求发送给Fiddler,Fiddler再转发给服务器;服务器返回消息也是先返回给Fiddler,Fiddler再转发给客户端。Fiddler就相当于一个中间人,例如房东把房给管家,管家带租客去看房。这个“管家”就相当于Fiddler
下载与安装Fiddler
- 官网下载地址:点击 fiddler下载
https://www.telerik.com/download/fiddler - 个人分享网盘下载地址:
英文版:https://pan.baidu.com/s/1tiEaMfZHnnfTNlPnYf_EaA?pwd=w96k 提取码: w96k 汉化版:https://pan.baidu.com/s/14NZmBMdIaPSkm53_WNemiA?pwd=ju7d 提取码: ju7d
下载安装完成后,双击文件夹中Fiddler.exe
弹出下面这个提示,不用管,点击“No”就行了
配置Fiddler
HTTPS证书安装
默认状态下,Fiddler只能监听HTTP请求。Fiddler不安装HTTPS证书,会无法抓取HTTPS请求包。 Tools–》Options–》HTTPS,勾选如下选项 两种安装证书方法:
- 信任证书:Tools–》Options–》HTTPS–》Actions–》Trust Root Certificate
- Reset All Certificates是重置证书
- Tools–》Options–》HTTPS–》Actions–》Trust Root Certificate to Desktop
再去浏览器,将Fiddler的证书导入到受信任的证书;例如chrom-点击右上三个点–设置–安全和隐私设置–高级滑到最下–管理证书,导入选择桌面这个证书路径
再返回Fiddler会话列表,就可以看到成功抓取了HTTPS的数据包
如果依然抓取不到https数据包,官网的链接下载certmaker http://fiddler2.com/r/?fiddlercertmaker 下载安装后,
还不行的话,选择Reset All Certificates 重置证书,重复以上流程
注意重启Fiddler
- 注意:如果访问浏览器页面Fiddler会话列表没有请求数据,检查一下有没有打开File–》Capture Traffic,关闭是不会抓取数据包的
设置过滤项
根据目标主机地址过滤
表示仅抓取下面地址的消息 输入想要抓取的HTTP消息目标地址,用分号隔开,*可以作为通配符,点击“Changers not yet saved ”保存生效
通过URL中关键字符过滤
表示至抓取url中包含该关键字的消息,比如做api接口测试,则输入关键字“api”
查看请求响应时间
- 直观的查看请求的响应时间Statistics
2.在FiddlerScript代码添加后,点击Sava Script保存,左侧列表可直接看到响应时间
public static BindUIColumn("TimeTaken/ms", 120)
function TimeTaken(oS: Session):String{
var sResult = "0";
var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond;
var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute;
var t1_s = oS.Timers.ClientBeginResponse.ToUniversalTime().Second;
var t1 = t1_m*60*1000 + t1_s*1000 + t1_ms ;
var t2_ms = oS.Timers.ClientDoneRequest.ToUniversalTime().Millisecond;
var t2_m = oS.Timers.ClientDoneRequest.ToUniversalTime().Minute;
var t2_s = oS.Timers.ClientDoneRequest.ToUniversalTime().Second;
var t2 = t2_m*60*1000 + t2_s*1000 + t2_ms ;
if(t1 >= t2){
var t3 = t1 - t2;
sResult = t3.toString();
}
return sResult;
}
一键清理会话列表:ctrl+x / ctrl+a+delete / 选择X-点击Remove all
web抓包
例如随便打开一个网站,如下是登录
如果没有抓取返回消息,注意左上角是否勾选“File-Capture Traffic”,不勾选的话则不会抓取数据
配置手机抓包
抓取手机上的请求,需要在手机进行配置。苹果和安卓配置方法可能存在差异,但是配置方法都是差不多的。(我安卓和苹果都试过)
1、确保手机和运行Fiddler的电脑是同一局域网,电脑可以win+r,cmd命令:ipconfig 查看电脑IP或者在fiddler中查看,鼠标放在右上角Online中即可显示电脑ip地址;手机可以通过wifi查看ip地址【例如:192.168.1.xxx】
2、设置Fiddler,允许远程机器连接自己,点击Tools-Options-Connections勾选如下 3、手机打开wifi,配置HTTP代理,选择手动,输入主机名称或IP地址,输入端口号8888 4、手机打开网址,或小程序、app可以发现Fiddler正在监控抓取数据,但是无法对HTTPS会话解密,需要在手机下载并安装Fiddler证书 4.1 打开手机自带浏览器,输入http://192.168.1.xxx:8888/FiddlerRoot.cer 访问(地址指的是代理服务器地址,也就是运行fiddler电脑地址) 4.2 如下点击第二行的FiddlerRoot certificate。随便输入一个证书名称,进行安装 4.3 有些手机系统不允许安装,可以去设置–安全与隐私–更多安全设置–从手机存储安装-CA证书(路径不一定都是这个,根据手机型号和系统) 例如苹果12如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/a361d8145d214ca39778218b202cd285.png
|