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

原文:抓包工具 - Fiddler(详细介绍)

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、中断会话后修改表单内容

  不知道什么原因捕获不了登录界面的会话(除了博客园网站外,其他很多网站的会话都捕获不到),所以下面的实例是来自小坦克的,详细博客地址在图片正文贴着。

  看个实例,模拟博客园的登录, 在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所示:

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

图19

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

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

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的详细介绍就到这里了,其他数据抓包分析和手机抓包分析下次再操作。

时间: 2024-08-30 03:27:08

抓包工具 - Fiddler(详细介绍)的相关文章

网络抓包工具Fiddler详解s

简介: Fiddler是一款网络分析工具,功能强大,下边介绍下他里边的工具栏以及他的使用方式. 工具栏介绍: 看下图: 打开以后就是这样一个界面. 然后介绍工具栏的选项: File :  里边包含了几个选项 Capture Traffic --启用捕获功能,快捷键 F12 此功能的开启/关闭状态,程序安装后默认是开启的.可以在 Fiddler 底部状态栏最左侧看到:(开启状态).(关闭状态) 也可以通过鼠标点击状态栏该图标来进行切换. Load Archive... --载入本地保存的 Sess

Linux下抓包工具tcpdump使用介绍

  在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一.sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的. 匹配ether广播包.ether广播包的特征是mac全1.故如下即可匹配: tcpdump 'ether dst ff:ff:ff:ff:ff:ff' ylin@ylin:~$ sudo tcpdump -c 1 'ether dst ff:ff:ff:ff:ff:ff' tcpdump: verbose output suppress

抓包工具TCPDump介绍/应用案例/总结教程

一,Linux下抓包工具TCPDump的介绍 1. TCPDump介绍 TcpDump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息.tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具.tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行

Mac Charles抓包工具详细介绍_IOS

 Mac Charles抓包工具 不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charles,它是Java开发的,所以跨平台,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,同时还有一个问题就是他是收费的. 一.下载 先到它的官网http://www.charlesproxy.com/可下载到最新版本. 这个是3.9.3版本的,下载下来,安装就不多说了,很easy....打开界面: 二.破解

Android 常用抓包工具介绍之Charles

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/516 Charles是一款抓包修改工具,相比起TcpDump,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!前面介绍了如何使用TcpDump抓包,下面给大家介绍一下Charles的使用. Charles抓包 Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.

ios-iOS请求https接口,为什么用charles或者fiddler等抓包工具截取的数据是明文的?

问题描述 iOS请求https接口,为什么用charles或者fiddler等抓包工具截取的数据是明文的? 是客户端需要设置什么?还是说服务器那边的问题? 解决方案 fiddler用的是中间人攻击的方式截获的数据.你浏览器中还可以直接看到明文呢.https只要是保障传输过程安全 解决方案二: 你的网站是你自己搭建的吗?你可以参考一下https加密原理 加密不是简单的用了https就可以了,https只是提供一种协议.加密需要密钥,如果网站没有证书,那怎么去加密,并且保证客户端能够解密呢.

fiddler、firebug、httpwatch这3种抓包工具的的优缺点以及使用场景

问题描述 fiddler.firebug.httpwatch这3种抓包工具的的优缺点以及使用场景 fiddler.firebug.httpwatch这3种抓包工具的的优缺点以及使用场景,求大神帮忙解决一下,网上的资料太乱了,谢谢!!! 解决方案 fiddler是个应用程序,启动就可以抓包系统中所有的的http协议数据包 firebug(firefox)和httpwatch(IE)是局限于浏览器的,只能当做浏览器插件安装 功能差不多

Android常用抓包工具之TcpDump

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/480   做为一个测试人员,工作中经常会用到数据抓包工具来进行数据分析和验证,下面就简单介绍一下工作中常用的抓包工具. TcpDump抓包 Tcpdump是一个用于截取网络分组,并输出分组内容的工具.它凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具. 可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机

[工具]Mac平台开发几个网络抓包工具(sniffer)

  [工具]Mac平台开发几个网络抓包工具(sniffer)  Cocoa Packet Analyzer http://www.tastycocoabytes.com/cpa/ Cocoa Packet Analyzer is a native Mac OS Ximplementation of a network protocol analyzer and packet sniffer. CPA supportsthe industry-standard PCAP packet captur