初使Fiddler

本文介绍了如何使用Fiddler工具快速定位和修复Bug,包括设置断点、修改数据、捕获HTTPS会话、创建AutoResponder规则等高级功能。详细解释了Fiddler的工作原理、如何在不同浏览器中启用代理、如何过滤会话及使用其提供的编码小工具等。同时,展示了如何在VS环境中使用Fiddler进行HTTP分析。
摘要由CSDN通过智能技术生成

昨天为了验证安全工程师大神的一个Bug,接触到了Fiddler。

Fiddler的官方网站:  www.fiddler2.com

OK,下载安装不用说了。

网上介绍:Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据。

的确是这样的,不过我也就用到了最基本的两个功能,设置断点和修改数据。

由于测试的不是web端,使用fiddler抓取了url。然后开始了复查Bug的操作。

1.在Fiddler的命令行中输入bpu url(如果不输入bpu url,Fiddler就不会拦截中断这个请求,这样会无法修改字段的Value值)。

2.再访问改url(实际是一个修改文件名的功能)

3.此时Fiddler 拦截并中断了这个请求,在列表中可以看到红色的标识。

4.选择这个请求,在右侧的Inspectors tab下选择WebForms tab,在这个界面,可以看到Name和Value两个字段的列表信息,其中就有修改的文件名字段。

5.果断的将文件名修改为脚本<script>alert('Hello,welcome to soft ')</script>

6.修改完成后,点击绿色背景的Run to Completion按钮。

7.查看这句脚本是否传到了软件中,文件夹的名字是否被修改了。

其实就是简单地两个步骤,但是这个软件既然被用上了,就还应该了解下它其他的功能吧。

以下摘抄网上资料:

Fiddler的工作原理


Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。


Fiddler会自动设置代理, 退出的时候会自动注销,这样就不会影响别的程序。

但如果Fiddler非正常退出,会因为Fiddler没有自动注销,会造成网页无法访问。

解决的办法是重新启动Fiddler。


同类的其它工具

httpwatch(这个在web测试的时候经常会用到)

firebug(目前用的真的真的不多,貌似开发经常用到)

wireshark(这个抓包工具是很有名的)

Fiddler 如何捕获Firefox的会话

能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。

Fiddler启动时就将IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。

(这里的意思是:除了IE浏览器,其他的都需要将代理手动改为127.0.0.1:8888,不知道理解的对不对哦~)

Firefox 上通设置代理步骤:

Tools -> Options,在Options 对话框上点击Advanced tab - > network tab -> setting。

Firefox 中安装Fiddler插件

修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。 

推荐在firefox中使用fiddler hook 插件,这样可以非常方便的使用Fiddler获取firefox中的request 和response。

(原来还有插件哦~下面看下怎么安装的)

安装fiddler后, 就已经装好了Fiddler hook插件, 需要到firefox中去启用这个插件

(原来是这样啊~)

打开firefox  tools->Add ons -> Extensions 启动 FiddlerHook

(新版的Firefox,在附加组件 -> 扩展里面)

 

Fiddler如何捕获HTTPS会话

默认下,Fiddler不会捕获HTTPS会话,设置下,打开Fiddler  Tool->Fiddler Options->HTTPS tab

 选中checkbox,弹出如下的对话框,点击"YES"

点击"Yes" 后,就设置好了。

Fiddler的基本界面


Inspectors tab下有很多查看Request或者Response的消息。

 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header。

 

Fiddler的HTTP统计视图

通过陈列出所有的HTTP通信量,Fiddler可以很容易的展示哪些文件生成了当前请求的页面。

使用Statistics页签,可以通过选择多个会话来得到这几个会话的总信息统计,比如多个请求和传输的字节数。

选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。

从条形图表中可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。

QuickExec命令行的使用

Fiddler的左下角有一个命令行工具叫做QuickExec,允许直接输入命令。

常见得命令有

help  打开官方的使用页面介绍,所有的命令都会列出来

cls    清屏  (Ctrl+x 也可以清屏)

select  选择会话的命令

?.png  用来选择png后缀的图片

bpu  截获request

 

Fiddler中设置断点修改Request

Fiddler最强大的功能莫过于设置断点了,设置好断点后,可以修改httpRequest 的任何信息包括host,cookie或者表单中的数据。


设置断点有两种方法

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话)

如何消除命令呢? 点击Rules-> Automatic Breakpoint  ->Disabled

第二种:在命令行中输入命令: bpu url   (这种方法只会中断url)

如何消除命令呢?  在命令行中输入命令 bpu。


(复查Bug的时候就用到了这个功能!)

Fiddler中设置断点修改Response


当然Fiddler中也能修改Response

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话)

如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

第二种:在命令行中输入命令:: bpafter url  (这种方法只会中断 url)

如何消除命令呢?  在命令行中输入命令 bpafter。

Fiddler中创建AutoResponder规则

Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。

看个实例:

1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。

2. 打开Fiddler 找到logo图片的会话, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif,  把这个会话拖到AutoResponer下

3. 选择Enable automatic reaponses 和Unmatched requests passthrough

4. 在下面的Rule Editor 下面选择 Find a file... 选择本地保存的图片. 最后点击Save 保存下。(最后一个下拉框)

5.  再用IE博客园首页, 你会看到首页的图片用的是本地的。

 



Fiddler中如何过滤会话

每次使用Fiddler,打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话。Fiddler中有过滤的功能, 在右边的Filters 中,里面有很多选项,稍微研究下,就知道怎么用。

 

Fiddler中会话比较功能

选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了 (当然需要你安装WinDiff)

 

Fiddler中提供的编码小工具

点击Fiddler 工具栏上的TextWizard,这个工具可以Encode和Decode string。

Fiddler中查询会话

用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示

Fiddler中保存会话

有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。  保存会话的步骤如下:

选择你想保存的会话,然后点击File->Save->Selected Sessions

Fiddler的script系统

Fiddler最复杂的莫过于script系统了 官方的帮助文档: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp

首先先安装SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下图

安装成功后Fiddler 就会多了一个Fiddler Script ,如下图

在里面就可以编写脚本了, 看个实例: 

让所有cnblogs的会话都显示红色。

把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击"Save script"

     if (oSession.HostnameIs("www.cnblogs.com")) {
            oSession["ui-color"] = "red";
        }

这样所有的cnblogs的会话都会显示红色

 

如何在VS调试网站的时候使用Fiddler

在用visual stuido 开发ASP.NET网站的时候也需要用Fiddler来分析HTTP, 默认的时候Fiddler是不能嗅探到localhost的网站。不过只要在localhost后面加个点号,Fiddler就能嗅探到。

例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,加个点号后,变成 http://localhost.:2391/Default.aspx 就可以了

 

第二个办法就是在hosts文件中加入  127.0.0.1  localsite

访问http://localsite:端口号。这样Fiddler也能截取到了。

 

Response 是乱码的

Response中的HTML是乱码的, 这是因为HTML被压缩了, 可以通过两种方法去解压缩。

1. 点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"

2. 选中工具栏中的"Decode"。  这样会自动解压缩。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值