Fiddler的详细介绍

一、Fiddler与其他抓包工具的区别

 1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存;

 2、Wireshark是通用的抓包工具,能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,但如果是TCP、UDP协议可以用wireshark;

 3、Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件);

而Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

二、Fiddler的工作原理

 Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。

 既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,所以web客户端和服务器的请求如图1所示:

图1(web客户端和服务器的请求过程)

 注:使用Fiddler的话,需要先设置浏览器的代理地址,才可以抓取到浏览器的数据包。而很方便的是在你启动该工具后,它就已经自动帮你设置好了浏览器的代理了,当关闭后,它又将浏览器代理还原了。当然如果发现没有自动设置浏览器代理的话,那就得自己动手去浏览器进行设置代理操作了。(可自行百度每个浏览器是如何设置代理的),反正一定要设置相应的代理,否则fiddler是无法捕获到HTTP请求的。

三、Fiddler的使用界面介绍

1、主界面如图2所示:

图2(fiddler主界面)

2、左边web session面板的字段及图标含义如下:

名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值

图标

含义

请求已经发往服务器

已从服务器下载响应结果

请求从断点处暂停

响应从断点处暂停

请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

请求使用 HTTP 的 POST 方法

请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道

响应是 HTML 格式

响应是一张图片

响应是脚本格式

响应是 CSS 格式

响应是 XML 格式

响应是 JSON 格式

响应是一个音频文件

响应是一个视频文件

响应是一个 SilverLight

响应是一个 FLASH

响应是一个字体

普通响应成功

响应是 HTTP/300、301、302、303 或 307 重定向

响应是 HTTP/304(无变更):使用缓存文件

响应需要客户端证书验证

服务端错误

会话被客户端、Fiddler 或者服务端终止

该表来源于博客:http://blog.csdn.net/qq_21445563/article/details/51017605

3、右边是详情和数据统计面板

1)Statistics关于HTTP请求的性能(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)以及数据分析。如图3所示:

图3(Statistics选项卡)

2)Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,如图4所示:

图4(Inspectors选项卡)

3)AutoResponder 可用于拦截某一请求,即按自己添加的指定规则重定向到本地的资源或Fiddler资源,从而代替服务器响应。

举例:将“baidu”这个关键字跟本地电脑的一张图片绑定了,再访问带有“baidu”关键字的地址,就会被劫持,具体步骤如图5所示:

图5(AutoResponder 选项卡)

启用规则后(勾选enable rules),在浏览器输入pan.baidu.com,会发现被劫持了,显示的是绑定的本地图片,而不是pan.baidu.com的页面

图6(被劫持)

4)Composer 自定义请求发送服务器,Parsed模式下你只需要提供简单的URLS地址即可,如图7所示

图7(Composer选项卡)

5)Filters 即过滤规则,通过设置过滤规则来过滤所需的http请求,如图8所示,勾选左上角的Use Filters开启过滤器:

图8(Filters选项卡)

  而这里有两个最常用的过滤条件:Zone和Host

a.Zone 指定只显示内网(Intranet)或互联网(Internet)的内容,如图9所示:

图9

b.Host 指定显示某个域名下的会话,如图10所示,如果框框为黄色,表示修改未生效,点击红圈里的文字即可:

图10

6)timeline 请求响应时间,在左侧会话窗口点击一个或多个请求,Timeline 便会显示指定内容从服务端传输到客户端的时间,如图11所示:

图11(timeline选项卡)

四、Fiddler的其他功能介绍

1、Fiddler 设置解密HTTPS的网络数据

 Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

解密HTTPS需要手动开启,依次点击:Tools –> Fiddler Options –>  HTTPS ->勾选Decrypt HTTPS traffic -> 点击Yes,在弹出的对话框中选择是即可,如图12所示

图12

2、Fiddler 内置命令与断点

 FIddler断点功能就是将请求截获下来,直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,也可以在命令栏输入断点命令进行截获,如图13所示

图13(断点)

  而断点的命令则可以精确设置需要截获那些请求,如下表所示:

命令

对应请求项

介绍

示例

?

All

问号后边跟一个字符串,可以匹配出包含这个字符串的请求

?google

>

Body

大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求

>1000

<

Body

小于号跟大于号相反,匹配出请求大小,小于这个数字的请求

<100

=

Result

等于号后面跟数字,可以匹配HTTP返回码

=200

@

Host

@后面跟Host,可以匹配域名

@www.baidu.com

select

Content-Type

select后面跟响应类型,可以匹配到相关的类型

select image

cls

All

清空当前所有请求

cls

dump

All

将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下

dump

start

All

开始监听请求

start

stop

All

停止监听请求

stop

断点命令 

bpafter

All

bpafter后边跟一个字符串,表示中断所有包含该字符串的请求

bpafter baidu(输入bpafter解除断点)

bpu

All

跟bpafter差不多,只不过这个是收到请求了,中断响应

bpu baidu(输入bpu解除断点)

bps

Result

后面跟状态吗,表示中断所有是这个状态码的请求

bps 200(输入bps解除断点)

bpv / bpm

HTTP方法

只中断HTTP方法的命令,HTTP方法如POST、GET

bpv get(输入bpv解除断点)

g  / GO

All

放行所有中断下来的请求

g

注:1、如bpafter断点命令使用方法为:bpafter 后边跟字符串->表示中断所有包含该字符串的请求;   bpafter ->表示解除刚刚的中断断点;

   2、该表来源于博客:http://blog.csdn.net/qq_21445563/article/details/51017605

3、中断会话后修改表单内容

  不知道什么原因捕获不了登录界面的会话(除了博客园网站外,其他很多网站的会话都捕获不到->解决方法:按上面‘Fiddler 设置解密HTTPS的网络数据’所写的步骤设置一下),所以下面的实例是来自小坦克的,详细博客地址在图片正文贴着。

  看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录:

  1. 用IE 打开博客园的登录界面  http://passport.cnblogs.com/login.aspx

  2. 打开Fiddler,  在命令行中输入bpu http://passport.cnblogs.com/login.aspx

  3. 输入错误的用户名和密码,点击登录

  4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如图14所示。

  5. 结果是正确地登录了博客园(当然Fiddler中也能修改Response)

图14(该实例来源于博客:http://kb.cnblogs.com/page/130367/)

4、Fiddler中会话比较功能

 选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了(注:需要安装WinDiff,自行百度安装就可以了,这里就不细说安装步骤),如图15所示

图15(compare功能)

5、Fiddler中提供的编码工具

  点击Fiddler 工具栏上的TextWizard,  这个工具可以Encode和Decode string,如图16所示

图16(TextWizard界面)

6、Fiddler中的查询会话

  Edit->Find Sessions(或Ctrl+F)打开Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示,如图17所示

图17(find session界面)

7、Fiddler中的保存会话

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

8、Fiddler中的script系统

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

图18(安装SyntaxView插件)

  安装成功后Fiddler 就会多了一个Fiddler Script tab,如图19所示:

图19

  在里面我们就可以编写脚本了, 看个实例让所有cnblogs的会话都显示红色。

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

  (该段脚本来源于博客:http://kb.cnblogs.com/page/130367/)

if (oSession.HostnameIs("www.cnblogs.com")) {

  oSession["ui-color"] = "red";

}

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

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

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

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

关于Fiddler的详细介绍就到这里了,其他数据抓包分析和手机抓包分析下次再操作。

转自:http://www.cnblogs.com/Chilam007/p/6985379.html

Fiddler的详细介绍的更多相关文章

  1. 抓包工具 - Fiddler(详细介绍)

    Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟http请求的功能也不够,且firebug常常是需要 ...

  2. Fiddler工具详细介绍

    百度看到Fiddler工具的详细介绍,转载收藏,侵权删,原文地址:http://blog.csdn.net/qq_21445563/article/details/51017605 前部分讲解Fidd ...

  3. Fiddler抓包工具详细介绍

    本文转自:http://www.cnblogs.com/Chilam007/p/6985379.html 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请 ...

  4. Fiddler的基本介绍

    fiddler 简介: 一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视.设置断 ...

  5. Fiddler工具使用介绍

    Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改. 代理就是在 ...

  6. fiddler基本功能介绍

    一.几种主流的抓包工具的对比: Wireshark:通用的抓包工具,抓取信息量庞大,详细.通常需要过滤才可容易得到有用信息.如果只抓http请求个人认为有点大材小用. Firebug.httpWatc ...

  7. 【转载】Fiddler工具使用介绍(一)

    原文https://www.cnblogs.com/miantest/p/7289694.html(一) https://www.cnblogs.com/miantest/p/7290176.html ...

  8. Fiddler工具使用介绍一

    Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改. 代理就是在 ...

  9. 【摘】Fiddler工具使用介绍

    摘自:https://www.cnblogs.com/miantest/p/7289694.html Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作 ...

随机推荐

  1. 前端基础知识-----HTML

    一.HTML基础概述 HTML:超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准语言.也就是一般我们在浏览器里看到的东西的书写格式,与 ...

  2. NuGet-Doc:承载自己的 NuGet 源

    ylbtech-NuGet-Doc:承载自己的 NuGet 源 1.返回顶部 1. 可能希望将包仅发布到有限受众(例如,组织或工作组),而不是将其公开发布. 此外,一些公司可能希望限制其开发人员可以使 ...

  3. RESTful再理解

    目录 目录 前言 RESTful的目的 REST的含义 表现层 状态转化 无状态协议HTTP 最后 前言 这是在经过一段时间的积累后,对RESTFul框架的再一次更深入的理解.希望能够将零散的知识点连 ...

  4. javaSE javaEE javaME的区别、有什么不同?

    http://zhidao.baidu.com/link?url=oFEPOmW8BnQ0M0w0krS9DyMA5UCUufgHJWV45r9UQZ-0vp_IOx-Yl-VV0hZQ-vHXGYo ...

  5. C语言readdir()函数:读取目录函数

    相关函数:open, opendir, closedir, rewinddir, seekdir, telldir, scandir 头文件:#include <sys/types.h> ...

  6. Pollard Rho算法浅谈

    Pollard Rho介绍 Pollard Rho算法是Pollard[1]在1975年[2]发明的一种将大整数因数分解的算法 其中Pollard来源于发明者Pollard的姓,Rho则来自内部伪随机 ...

  7. ELK日志分析系统之Kibana7.x最新版安装与配置

    3.Kibana的简介 Kibana 让您能够自由地选择如何呈现自己的数据.Kibana 核心产品搭载了一批经典功能:柱状图.线状图.饼图.旭日图等等. 3.1.软件包下载地址:https://www ...

  8. Codeforces 1166E(思维)

    题面 有一个长度为n的序列a,有m次操作.每一次操作一个人选a的一个子集x,另一个人会选x的补集y.且x集合中的数的最小公倍数比y集合中的数的最小公倍数大.现在给出所有x,判断是否有一个序列a满足条件 ...

  9. Pandas处理缺失的数据

    处理丢失数据 有两种丢失数据: None np.nan(NaN) import numpy as np import pandas from pandas import DataFrame 1. No ...

  10. 验证客户端的合法性、socketserver模块

    一.为了防止客户端被人非法利用,需要在使用之前对客户端进行合法性验证.接下来就是客户端验证的几种方法 hmac  加密方法 import socket import os import hmac #能 ...