Fiddler整理

一、fiddler抓包原理

1.    简介

fiddler是一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。

2.工作原理

Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据

iddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:

网络工作原理

3.抓取HTTPS原理

现在APP中的数据传输基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,还好Fiddler除了可以抓取HTTP数据包,还可以抓取HTTPS数据包。由于HTTPS传输需要使用到CA证书,所以抓取抓取HTTPS数据包时需要做一些特殊配置。Fiddler截取HTTPS报文的流程大致如下:

HTTPS传输示意图

1) 客户端请求建立HTTPS链接,发送客户端支持的加密协议及版本列表等信息给服务器端。

2) Fiddler接受客户端请求并伪装成客户端向WEB服务器发送相同的请求。

3) WEB服务器收到Fiddler的请求以后,从请求中筛选合适的加密协议。并返回服务器CA证书,证书中包括公钥信息。

4) Fiddler收到WEB服务器的响应后保存服务器证书并自签名一个CA证书,伪装成服务器,把该证书下发给客户端。

5) 客户端验证证书合法性。(Fiddler能否抓取到HTTPS报文关键看这一步)

6) 客户端生产对称密钥,通过证书的公钥加密发送给服务器。

7) Fiddler拦截客户端的请求以后,使用私钥解密该报文,获取对称加密秘钥,并使用服务器证书中带的公钥加密该对称密钥发送给WEB服务器。此时对称密钥已经泄露了,以后可以使用该秘钥界面客户端和服务器端传输的数据。

8) WEB服务器接收到客户端发送的加密的对称密钥后使用私钥解密,并使用对称密钥加密测试数据传给客户端。

9) Fiddler使用前面获取的对称密钥解密报文。

10) 客户端验证数据无误以后HTTPS连接就建立完成,客户端开始向服务器发送使用对称密钥加密的业务数据

11) Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。

二、fiddler抓包配置

1.下载安装

    官网下载Fiddler免费安装包:https://www.telerik.com/fiddler,找到对应系统的安装下载即可;下载后自行安装,无特殊处理。

2.基本配置

打开Fiddler,在菜单栏中选择Tools->Options->HTTPS:勾选【Capture HTTPS CONNECTS】和【Decrypt HTTPS traffic】选项,点击【Actions】-【Reset All Certificates】重置证书(有异常请见后续)。

配置HTTPS抓包

在菜单栏中选择Tools->Options->Connections:输入监听端口(默认是8888),勾选【Allow remotecomputers to connect】,点击确认然后重启Fiddler

配置端口号和连接

点击Fiddler主界面的右上角的“Online”按钮查看Fiddler所在主机的主机名和IP地址,配置手机网络时需要使用到这个IP地址(注意与本地的ip地址相一致)


ip地址

3.手机配置

打开手机wifi网络设置(wifi需要与电脑在同一个网络端),在wifi高级设置中的代理栏下面选择手动设置,设置输入Fiddler主机的IP地址(上一步显示的IP)和监听端口号(配置的8899),保存退出

打开手机中的默认浏览器(方便安装),在地址栏输入Fiddler监听的172.20.57.100:8899(连接电脑ip和fiddler配置的端口号),出现如下页面,点击【FiddlerRoot certificate】下载证书

证书下载

在默认浏览器安装证书安装证书(如果下载了没有自动提示安装,可进入设置->系统安全->从存储设备安装中手动安装),输入证书名称(无限制,如“fiddler”),点击【确定】保存即可


证书安装

后续正常启动APP,进行抓包即可


抓包示例图

4.遇见问题处理

1)手机浏览器访问无法打开fiddler证书下载页面:先检查配置代理和访问网址的ip+端口号是否正确,不行则再关闭掉电脑的防火墙配置;

2)抓取数据失败Tunnel to......443:证书问题,先通过fiddler在菜单栏中选择Tools->Options->HTTPS,点击【Actions】-【Open Windows Certificate Manager】打开证书管理器

打开证书管理器

只需要保留【受信任的根证书颁发机构】-【证书】下的证书文件,其他如【个人】、【企业信任】等目录下的证书文件全部删除,保存即可

证书管理

你可能感兴趣的:(Fiddler整理)