Fiddler安装与使用

Fiddler的简介与原理

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

先来看看fiddler未参与时,一个普通的客户端与服务端的请求流程图,浏览器给webserver发送一个Request,webserver接收到Request后进行处理,返回给浏览器Response,然后浏览器解析Response中的html,展现网页给用户。如图:

img

Fiddler工作于七层中的应用层,在client与webserver之间以代理服务器的形式存在,启动fiddler后会监听本地127.0.0.1的8888端口(默认端口),IE/Chrome浏览器会自动设置局域网代理(Firefox代理是独立的,需要单独设置)。

此时,fiddler就作为代理服务器,浏览器访问服务器的流程:浏览器给webserver发送一个Request,代理服务器fiddler接收到Request,fiddler将Request发送到webserver,webserver接收到Request后进行处理,Response到代理服务器fiddler,Fiddler将Response返回到浏览器,如图:

img

以上这些原理,都只适合Http的报文,对于Https的报文,则更复杂一点,这里介绍的比较清楚。

https://zhuanlan.zhihu.com/p/73155270

https://zhuanlan.zhihu.com/p/27040041

Fiddler安装与使用

安装

到官网下载安装包,直接默认安装就行。https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe

如果是win8及以后的版本,打开后会看到下面的提示。

winconfig

在win8及以后版本中,Windows禁止一些应用使用本地的代理,可以在Tools->Win8 Loopback Exemptions里设置为允许。

win8config

这些应用一般都是Windows自己的应用,我们可以看到Fiddler上有不少Http包。

http包

为浏览器配置Fiddler

以Chrome为例说明如何用Fiddler抓包,在Win10中,在“网络和Internet”->”代理”中手动设置代理。

设置代理地址如下:

http=127.0.0.1:8888;https=127.0.0.1:8888

proxy

这时候我们在chrome中打开baidu,虽然能看到流量,但是都是https的,没法解开内容。

在Tools->Options->Https中设置Decrypt HTTPS traffic。这时候会提示要安装一个Fiddler的证书到Windows信任证书列表,这样的话应用就不会提示”不受信任的证书“了。

确定后,再次访问百度,就能解析https的流量了。

为Android配置Fiddler

Android配置Fiddler所在的服务器为代理就可以实现Android抓包。

此处以MuMu模拟器为例,正常的Android也是这种操作方法,只要能访问Fiddler的地址就行。

在 Tools > Fiddler Options > Connections里,勾选 Allow remote computers to connect,然后重启。

在Android的WIFI配置中,设置代理为Fiddler的地址和端口。

添加Fiddler的证书为信任证书。

在手机浏览器输入:http://ip:8888,到了一个Fiddler Echo Service。

Download FiddlerRoot Certificate

点击下载根证书,直接点击就能安装。

以北邮人论坛为例,它用的Https协议,我们在模拟器里启动,发现能抓到包。