抓包工具 - 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 |
问号后边跟一个字符串,可以匹配出包含这个字符串的请求 |
|
|
> |
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的详细介绍就到这里了,其他数据抓包分析和手机抓包分析下次再操作。
抓包工具 - Fiddler(详细介绍)的更多相关文章
- 抓包工具 Fiddler 使用介绍
简介 Fiddler是一个抓包工具,可以将网络传输发送与接收的数据包进行截获.重发.编辑等操作.也可以用来检测流量.原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口 ...
- 抓包工具Fiddler的使用
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
- 网络抓包工具 Fiddler
网络抓包工具 Fiddler 下载网址 http://www.telerik.com/fiddler 简单介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查全部你的电脑和互联网之间的 ...
- 移动端抓包工具——Fiddler(一)
web端抓包一般利用浏览器自带的检查功能(F12),然后看Network项,根据请求响应判断出问题 移动端怎么抓包呢,这里介绍一款常用的抓包工具——Fiddler 前提: 1.必须确保安装fiddl ...
- 和我一起学习爬虫之HTTP/HTTPS抓包工具--Fiddler
HTTP/HTTPS抓包工具--Fiddler Fiddler[ˈfɪdlə(r)] 1. HTTP代理神器Fiddler Fiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP ...
- 【转】抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS
在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler ...
- 抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程
转自:http://www.51testing.com/html/80/n-3726980.html 抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程 发表于:2018-6-06 11: ...
- 爬虫(二):抓包工具Fiddler
1. 抓包工具Fiddler 1.1 Fiddler下载与安装 最简单的方法,打开百度,搜索fiddler下载. 下载完毕解压即可,此版本为绿色版. 点击这个即可运行抓包软件. 1.2 Fiddler ...
- 抓包工具fiddler下载配置(三):手机设置代理
前言 本篇仅讲解了手机端如何设置代理,是[抓包工具fiddler下载配置(一):下载/安装&信任证书]的后续文章,未下载安装抓包工具的需先参考文章[抓包工具fiddler下载配置(一):下 ...
- 抓包工具fiddler下载配置(一):下载/安装&信任证书
简介 Fiddler一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件 ...
随机推荐
- Python全栈之路-Day31
1 反射 反射的精髓是通过字符串去获取对象属性的值 1.1 基于类和对象反射的属性 #!/usr/bin/env python # __Author__: "wanyongzhen" ...
- bzoj4825 [Hnoi2017]单旋
Description H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构.伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必 ...
- salesforce零基础学习(七十一)级联表DML操作
曾经做项目没有考虑那么多,对于级联表操作都是正常的一步一步操作,没有考虑过失败情况,最近项目遇见了失败的情况,导致碰到了相应的情况,特此mark一下,免得后期继续踩坑. 需求如下:新建页面,页面中包含 ...
- ST-3- Installing and Testing IUnit, Hamcrest and Eclemma
一.安装JUnit和Hamcrest 1.首先从办公网上下载JUnit.jar和Hamcrest.jar,并且将其放入所进行的项目的bin目录下,我将其放入了triangle项目的bin目录下. 2. ...
- 【iOS UI】UINavigationController
1.UINavigationController介绍 1.1简介 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 下面的图显示了导航控制器的流程.最左侧是根视图 ...
- Java中的锁分类
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级 ...
- ubuntu16.04 编译运行 LSD-SLAM
下载编译LSDSLAM,可能会出现 CreateGlutWindowAndWind is not a member of pangolin 以及 该函数参数报错的问题: 原因是在新的pangolin版 ...
- 1.centOS安装Mysql
上个星期研究了一个星期的Mysql,从今天起把学到的东西整理一下. ---------------------------------------------- mysql安装本人亲试过两种安装方式, ...
- .Net程序员学用Oracle系列(26):PLSQL 之类型、变量和结构
1.类型 1.1.属性类型 1.2.记录类型 2.变量 2.1.变量类型 2.2.变量定义 2.3.变量赋值 3.结构 3.1.顺序结构 3.2.选择结构 3.3.循环结构 4.总结 1.类型 在&l ...
- dubbo在企业中用得多吗?
看了阿里的dubbo,据说是一个不错的服务框架, 不过,好像Minglisoft.technology搞研发希望各位可以指点学习 想知道其他的公司用这个框架多吗?遇到的问题能否快速解决呢?抉择中...























