抓包工具Fiddler介绍以及常用功能

1.Fiddler简介
Fiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据,修改hosts,限制网速,http请求性能统计,简单并发,接口测试,辅助自动化测试,等等。现在抓包工具成为测试人员的必备使用工具,开发人员也在普遍使用,进行问题的定位分析,是非常有助于工作的一款工具。

2.Fiddler工作模式
浏览器给webserver发送一个Request,代理服务器fiddler接收到Request,fiddler将Request发送到webserver,webserver接收到Request后进行处理,Response到代理服务器fiddler,Fiddler将Response返回到浏览器,如图:
在这里插入图片描述

3.Fiddler功能强大,有以下常用功能:
Fiddler抓取HTTPS请求配置
Fiddler自带方便的编码工具:TextWizard
接口测试
设置断点,篡改和伪造数据
修改电脑系统hosts
HTTP请求统计视图
简单并发测试
慢网络测试(限制网速)
显示出服务器IP方法
命令行QuickExec用法

4.菜单栏
在这里插入图片描述
1、点击“会话记录”,“增加备注”即可

2、点击“会话记录”,点击“回放/重播”按钮,或者点击“快捷键R”即可回放

3、清空控制面板,选项:Images、Non-200s、Non-Browser等

  点击“Remove all”按钮(全部清空)

4、调试Bug,可以请求断点的时候让断点往下走,结合状态栏使用

对发出的请求,设置断点,点击“箭头”(位于下方,箭头朝上并显示×),代表请求在发送阶段,会有断点,再次点击“箭头”(位于下方,箭头向上并显示×),代表请求在返回阶段,产生断点。

若遇上请求没有发出去,想让断点往下走,点击“GO”按钮

5、代理模式切换,默认缓冲模式,点击“切换流模式”

6、解压请求,帮助解压Http请求里面的东西,方便查看

7、保持会话,默认选择“All sessions”Fiddler保存的会话数量越多,Fiddler占用内存数量就会越大

8、过滤请求,过滤一些不想看到进程里面发出的请求,例如:打开谷歌浏览器,和Fiddler并列排放,把图标移到谷歌浏览器上面,过滤请求就会显示谷歌浏览器的相关信息

9、查找,当会话数量较多时使用,例如:查找baidu,选择“粉色”,即可显示效果

10、保存会话,例如:保存会话,取名Demo,清空会话,点击“File”-“Recent archives”,找到刚刚保存的会话打开即可

11、保存截图,点击“图标”之后,5秒钟后保存截图

12、计时器,点击“图标”,开始计时,再点击“图标”,返回计时结果

13、快速启动浏览器,显示电脑本身已安装的浏览器,点击“浏览器”,即可打开使用

14、清除缓存,清除IE浏览器缓存的快捷键,点击“Clear Cache”,自动清除浏览器缓存

15、编码/解码,点击“TextWizard”,编码/解码文本内容,例如:URL被编码,选择“URLDecode”,即可解码

16、分离面板,显示浮窗效果,不用则关闭

17、MSDN搜索,针对MSDN

5.请求和返回报文查看选项卡功能说明
在这里插入图片描述
6.Fiddler抓取HTTPS请求配置
由于fiddler安装后默认只能抓取http请求,如果需要抓取https请求需要进行配置。配置方式:

Tools—>Options—>HTTPS,勾选CaptureHTTPS CONNECTs、Decrypt HTTPS traffic 、ignore server certificate errors(unsafe),点击OK,会弹出证书直接确认即可。
在这里插入图片描述
7.抓取移动端APP的请求配置
Tools---->Connections---->勾选Allow remote computers to connect:
在这里插入图片描述
然后再手机上设置代理,以iPhone为例:
在手机上设置代理:设置—>无线网络,设置服务器ip和端口号:
在这里插入图片描述
然后手机safari浏览器输入地址:电脑ip:8888如:http://172.21.10.42:8888会出现如下页面:
在这里插入图片描述
点击“FiddlerRoot certificate”进行证书安装,安装完成后,如下说明安装成功:
dd
此时,证书还不算完成安装完,假如手机是ios10.0以上系统,需要在手机系统设置—关于手机----证书信任设置,在此页面把证书开启即可,此时手机safari浏览器地址栏输入测试网址或者使用APP,在电脑端fiddler上即可显示出对应的请求:
8.Fiddler自带方便的编码工具:TextWizard
在这里插入图片描述
9.接口测试
Composer
在这里插入图片描述
10.设置断点,篡改和伪造数据
注册类 订单提交 支付类功能
请求时,可被篡改的两个点:Before Requests、After Responses。
在这里插入图片描述
修改Requests方法:Rules---->Automatic Breakpoints---->Before Requests

以论坛发布帖子为例,修改请求前数据内容,比如发布的内容如下:
在这里插入图片描述
点击发布帖子,此时请求被fiddler拦截掉,将右侧requests body里面的字段message内容前新增内容:“篡改requests数据成功!”,然后点击Run to Completion,先关闭掉拦截Rules---->Automatic Breakpoints---->Disabled,其他请求都放过,点击工具栏中的“Go”
在这里插入图片描述
修改Responses方法:Rules---->Automatic Breakpoints---->After Responses,方法跟修改Requests类似,无非修改的内容变成了Response。

10.修改电脑系统hosts
假如我要将www.baidu.com指向www.hao123.com对应的服务器上,www.hao123.com对应的服务器公网ip:47.94.18.31,配置如下:Tools---->Hosts---->勾选Enable remapping of requests for one host to a different host or IP,overriding DNS.然后host编辑区域,输入需要域名需要指向的服务器公网IP,比如我将www.baidu.com域名指向了47.94.18.31,保存即可。(如果不使用host,勾去掉即可)

11.HTTP请求统计视图
ctrl+点击需要统计的请求,右边Statistics可以看到总体明细。

12.简单并发测试
如一个人一天只能有一次抽奖机会,那么在点击抽奖按钮发出请求之前,要设置Before Requests Breakpoints,点击抽奖后在会话列表中会看到一个被断点的请求,此时鼠标选中此请求,按shift+u,会弹出并发次数的设置,按需求设置并发次数。

13.弱网络测试(限制网速)
Fiddler—》Rules—》Customize Rules ,

在CustomRules.js里搜索找到:m_SimulateModem,

在如下脚本中修改上传及下载延时毫秒数即可:

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"; 

    }

修改完成后,重启下fiddler,Rules---->Performance---->Simulate Modem Speeds,选中即可生效。

14.显示出服务器IP方法
Fiddler默认配置中是看不到服务器IP的,接下来简单介绍下在fiddler上也能够看到请求的服务器IP:

1、Fiddler—》Rules—》Customize Rules ,

2、在CustomRules.js里搜索找到:static function Main() ,

3、添加如下一行脚本:

FiddlerObject.UI.lvSessions.AddBoundColumn(“Server IP”, 120, “X-HostIP”);

完整js代码如下:

static function Main() {

var today: Date = new Date();

FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today;

// Uncomment to add a “Server” column containing the response “Server” header, if present

FiddlerObject.UI.lvSessions.AddBoundColumn(“Server IP”, 120, “X-HostIP”);

}

添加完成后,重启下fiddler,就可以显示出请求的服务器ip。

15.fiddler过滤请求只要看自己想看的
在Filers面板中勾选“Use Filters”,并在Hosts区域,设置以下三个选项:

1).第一项有三个选项,分别是“No zone filter”“Show Only Intranet Hosts”“Show Only Internet Hosts”,不做更改;

2).第二项有四个选项,分别是:

No Host Filter”不设置hosts过滤“;

Hide The Following Hosts”隐藏过滤到的域名;

“Show Only The Following Hosts”只显示过滤到的域名;

“Flag The Following Hosts”标记过滤到的域名;

选中“Show Only The Following Hosts”,在文本框内输入需要过滤的域名,多个域名使用”;“分号分割。fiddler默认会检查http头中设置的host,强制显示http地址中德域名。以

15.Response乱码时的处理方法
问题:有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。

步骤:方法一:点击红框内容“Response body is encouded.Click to decode.”

方法二:选中工具栏中的"Decode"。 这样会自动解压缩。

猜你喜欢

转载自blog.csdn.net/weixin_42166361/article/details/104792292