简介
一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。所以无论对开发人员或者测试人员来说,都是非常有用的工具。
工作原理
Fiddler是以代理web服务器的形式工作的,它使用代理地址127.0.0.1端口:8888。Fiddler会自动设置代理,退出的时候会自动注销代理,这样就不会影响别的程序。不过Fiddler如果非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问,解决的办法是重启下Fiddler。
基础实用功能使用说明
1.使用Fiddler捕获https会话
默认情况下,Fiddler是不会捕获https会话的,这就需要自行设置一下。打开Fiddler,Tools->Fiddler Options->HTTPS Tab,如下:
如上图,将框起来的部分打钩即可(出现弹出框时点yes即可)。
2.Fiddler的基本界面
Statistics 对所选中的这些会话的一个统计信息
Inspectors 对某一条对话的Response和Request的详细介绍
i)上面是请求信息的监测,Headers是头信息,TextView是内容,Raw是原始信息,就是没有经过分析的信息。
[RW] Headers—Shows request headers and status.---------------------请求的头信息和统计信息
[RW] TextView—Shows the request body in a text box.-----------------请求内容部分
[RW] HexView—Shows the request body in a hexadecimal view.---------请求内容的16进制显示
[RO] XML—Shows the request body as an XML DOM in a tree view.------请求内容的XML显示
ii)下面是响应信息的监测,也有Headers和TextView,如果是图片还可以从ImageView看到图片,如果返回的是XML还可以通过XML选项卡查看树型的XML信息
[RW] Transformer—Removes GZip, DEFLATE, and CHUNKED encodings for easier debugging. ----支持某些压缩
[RW] Headers—Shows response headers and status. ---------------------------------------------响应的头信息和统计信息
[RW] TextView—Shows the response body in a text box. -----------------------------------------响应内容部分
[RW] HexView—Shows the response body in a hexadecimal view.----------------------------------响应内容的16进制显示
[RO] ImageView—Shows the response body as an Image. Supports all .NET image formats.-------响应内容如果是图片则显示图片
[RO] XML—Shows the response body as an XML DOM in a tree view.------------------------------响应内容是XML的用树装结构
AutoResponder可以将已有的相应发回给服务器
Filter可以对会话进行过滤
TimeLine 通讯的时间
Log 日志
3.http统计视图
选择一个或多个会话,点击右侧统计,可以轻松的查看所选会话的请求字节数,发送字节数等一系列的统计信息,方便针对统计结果进行相关方面的优化。
4.QuickExec命令行的使用
QuickExec命令行是会话列表下边的黑色区域,允许直接在里边输入命令,回车后可执行命令。
常见的命令有:
help:打开官网命令帮助文档。
cls:清屏(Ctrl+X也可以清屏)。
bpu:截获request
5.如何在fiddler中设置断点修改request
设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法,如下:
a) 打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
b) 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpu
示例:
1) 打开界面
2) 打开Fiddler,在下边的命令行输入命令 (bpu 登录网址 )
3) 输入错误的用户名密码,点击登录
4) Fiddler能中断这次对话,选择中断的对话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。
5) 结果是正确登录了系统。
6.在Fiddler中修改response
a) 打开Fiddler 点击Rules-> Automatic Breakpoint ->After Response (这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
b) 在命令行中输入命令: bpafter www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpafter,
7.在Fiddler中创建AutoResponder规则
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
1) 开启重定向规则,更改Fiddler如下:
界面上有三个选择框,第一个的作用是开启或禁用自动重定向功能,我们就可以在下面添加重定向规则了;第二个选择框被勾上时,不匹配的请求可以通过,不影响那些没满足我们处理条件的请求。
2) 创建重定向规则,将目标文件(左侧被选中会话)的http请求重定向到本地,如:选择某一个会话,如图片或者js等。
3) 点击Add Rule(或者直接拖拽到右侧),即会将选中的会话添加到右侧待处理
4) 选择本地的文件或者需要替换的文件,替换刚刚选择的内容。如下图:
5) Save之后,会保存到上边的信息框,不管是否进行调试,访问左侧的地址时,都会以右侧的地址内容替代。
6) 不需要时,选中上图的信息,右键即可进行删除此重定向规则。
8.过滤会话
Fiddler一旦开启,会监听所有打开的浏览器的网站的所有会话,有时候我们为了对某一类会话进行分析,就可使用过滤功能。
右侧的Filters Tab进行过滤设置,勾选Use Filters即可对捕获的会话进行设置规则的过滤,左侧的会话列表只显示过滤后的结果,如下图所示:
上图选择了 Show only following Hosts的选择项,并在其下文本框内输入相关的hosts信息,则左侧过滤后结果都展示域名为*.baidu.com的结果。
文本框域名填写规则:
a) baidu.com:会只捕获www.baidu.com的http请求信息。
b) *.baidu.com:会捕获到baidu.com的所有其下二级域名的http请求。
c) *baidu.com:会捕获任何以baidu.com结尾的域名的http请求信息。
d) 多个hosts设置之间以分号相隔。
其它的过滤设置可根据情况自行设定。
9.重新发送一个请求
1) 选择左边的一个会话,右键选择Replay > Reissue Requests,则会将选择的会话重新发送请求,http请求的相关信息不变。
2) 如果想重新发送一个请求,但是改变请求的相关信息,就用使用Composer Tab了。
选择Composer Tab->Scratchpad ,在左边选择需要重新请求的会话,拖拽到右侧,则出现如下:
修改该会话的相关信息后,选中此会话(多个会话时选中要执行的会话)并点击右上角Execute按钮执行,则此会话以新的请求信息进行重新请求,左侧会话框则会捕获此次请求,点击会话到相关的Tab,即查看新的http请求信息.