Fiddler基本原理

Fiddler是一款的强大的Web调试工具,他是一个位于客户端和服务器端的HTTP代理,它能记录所有客户端和服务器的httphttps请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据;客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,所以Fiddler与客户端与服务器工作的原理图如下:

fiddler抓包数据分析 fiddler抓包过程及原理_客户端

 

 

使用Fiddler的话,需要先设置浏览器的代理地址,才可以抓取到浏览器的数据包。而很方便的是在你启动该工具后,它就已经自动帮你设置好了浏览器的代理了,当关闭后,它又将浏览器代理还原了。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler

 

如果发现Fiddler没有自动设置浏览器代理的话,那就得自己动手去浏览器进行设置代理操作了。

浏览器代理设置

1)IE和360代理设置:默认IE和360代理都是自动开启的,Fiddler启动后自动修改代理。

代理查看方式:浏览器菜单栏上:工具—>Internet选项—>连接—>局域网设置—>高级代理。

 

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_02

 

 

2)火狐浏览器代理设置:火狐浏览器启动之后,Fiddler没有反应,不会自动修改代理,是因为火狐代理是自己独立的,不会像IE、360那样自动改变;

代理设置:菜单栏->选项——>高级——>网络——>连接——>设置——>手动配置代理——>Http代理和端口输入(与Fiddler代理端口保持一致),代理服务器地址127.0.0.1,即本机,端口为8888(可根据第4点的步骤进行查看);

 

3)谷歌浏览器代理设置:工具——>设置——>拖动页面到底部,点击:显示高级设置按钮——>网络——>更改代理服务器设置——>点击:局域网设置——>高级——>进入代理服务器设置;

 

4)Fiddler自己的端口查看:Fiddler->Tools——>Options——>Connections下的Fiddler listens on port:8888,8888就是我们Fiddler默认的端口号,如下图;

Fiddler默认端口号是8888,如果要修改,修改之后要重启Fiddler。

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_03

 

 

Fiddler版本

操作系统低于win7或是XP系统用Fiddler2就行,win7或win7以上版本,用fiddler4 版本,建议都用Fiddler4版本;

Fiddler如何捕获HTTPS会话

   默认Fiddler只捕获HTTP会话,不会捕获HTTPS会话,如果需要对HTTP会话进行捕获则需要对Fiddler进行设置,设置步骤如下:

1)打开Fiddler  Tool->Fiddler Options->HTTPS tab

fiddler抓包数据分析 fiddler抓包过程及原理_HTTP_04

 

 

下拉框里面的选项:

from all processes : 抓取所有的 https 程序, 包括 本机 和 手机
from browsers only : 只抓取浏览器中的 https 请求
from non-browsers only : 只抓取除了浏览器之外的所有 https 请求
from remote clients only : 抓取远程的客户端的 https ,可以代表手机

2)选中上面的所有checkbox,如上图, 然后弹出如下的对话框,点击"YES" 

fiddler抓包数据分析 fiddler抓包过程及原理_HTTP_05

3)再点击Yes

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_06

 

4)点击是

 

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_07

 

 5)点击确定,这样Fiddler证书就已经添加成功了,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称

6)可以点击Action查看已安装的证书。如下图

fiddler抓包数据分析 fiddler抓包过程及原理_代理服务器_08

 

 

fiddler抓包数据分析 fiddler抓包过程及原理_代理服务器_09

 

 

 

7)对浏览器安装证书

7.1)导出证书:

fiddler抓包数据分析 fiddler抓包过程及原理_代理服务器_10

 

 导出的证书显示如下

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_11

 

7.2)在浏览器的高级选项中导入证书

fiddler抓包数据分析 fiddler抓包过程及原理_代理服务器_12

 

 

 这样就完成了PC端浏览器https协议的抓包设置

 

Fiddler远程抓包

Fiddler是代理机制,所以我们也可以实现远程操作,Fiddler默认只开启本地,若要抓取远程需要打开远程设置,以我本机电脑远程抓包另一台pc为例

1) 我本机电脑安装Fiddler,然后点击Fiddler菜单栏的Tools——>Options——>Connections——>勾选Allow remote computers connect;

fiddler抓包数据分析 fiddler抓包过程及原理_代理服务器_13

 

 

 2)查询我本机电脑的IP地址:cmd下使用ipconfig进行查看

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_14

 

 

3)设置另一台PC的浏览器代理,代理服务器地址为我本地IP,代理端口为Fiddler默认的8888端口

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_15

 

 

4)在另一台PC上进行浏览器操作,我本地的Fiddler上就可以抓取捕获对应数据,指定代理之后,无论Fiddler抓包开关是关闭还是打开,数据都会传输过来

fiddler抓包数据分析 fiddler抓包过程及原理_客户端_16