Fiddler 抓取HTTPS的网络数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler 抓取HTTPS的网络数据相关的知识,希望对你有一定的参考价值。

参考技术A 一、Fiddler抓取HTTPS的原理

Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。在浏览器面前,Fiddler伪装成一个HTTPS服务器。而在真正的HTTPS服务器面前,Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的,抓取HTTPS的网络数据。

二、Fiddler抓取HTTPS的设置

1、点击菜单栏Tools –> Fiddler Options –>  HTTPS,进行抓取HTTPS的设置,允许安装证书:

Fiddler中如何抓取app中https(443端口)数据

Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获手机发出的HTTP/HTTPS请求,总结下Fiddler截获IPhone和Android发出的HTTP/HTTPS包,前提条件是:安装Fiddler的机器,跟Iphone、Android在同一个网络里, 否则手机不能把HTTP发送到Fiddler的机器上来。

如果你遇到了这个坑:手机上已经设置好代理,开启代理后,却发现手机上不了网。

那么应该是和电脑防火墙有关,此时需要设置下防火墙,如过设置无效或者不知道怎么设置的话直接将防火墙暂时性关闭吧。

一、准备工作

不论IPhone、Android,首先都需要配置Fiddler,打开Fiddler,Tools->Telerik Fiddler Options...(配置完后记得要重启Fiddler)。
选中"Decrpt HTTPS traffic",Fiddler就可以截获HTTPS请求
选中"Allow remote computers to connect",是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来,如图

 

三、Android上安装Fiddler证书

这一步是为了让Fiddler能捕获HTTPS请求。如果你只需要截获HTTP请求,可以忽略这一步

1. Android设置代理服务器,打开wifi设置页面,找到连接的网络,进入“修改设置”,修改代理为手动

勾选“显示高级选项”,在接下来显示的页面中,点击“代理”,选择“手动”,在“代理服务器主机名”和“代理服务器端口”中写上电脑在WiFi中的地址和上面设置的端口号(8888),最后点“保存”。

代理设置如下:

 

2. 导证书到Android设备
Fiddler本质上是一个HTTPS代理服务器,其自己带的证书显然不会在Android设备的受信任证书列表里。
有些应用程序会查看服务器端的证书是否是由受信任的根证书签名的,如果不是就直接跳出。
所以,为了保险起见,我们要将Fiddler代理服务器的证书导到Android设备上。
导入的过程非常简单,打开设备自带的浏览器,在地址栏中输入代理服务器的IP和端口,例如本例中我们会输入192.168.1.167:8888,进入之后会看到一个Fiddler提供的页面:

 

输入一个证书名称(这里自己填写即可),然后直接点“确定”就好了。

 

二、如果你使用的是iPhone的话

1. 首先要知道Fiddler所在的机器的IP地址:假如我安装了Fiddler的机器的IP地址是:192.168.1.104
2. 打开IPhone 的Safari,访问  http://192.168.1.104:8888, 点"FiddlerRoot certificate",然后安装证书

3. IPhone上配置Fiddler,打开IPhone,找到网络连接,打开HTTP代理,输入Fiddler所在机器的IP地址(比如192.168.1.104)以及Fiddler的端口号8888。

 

最后,这种方法的一些优点和缺点。

优点:1)手机不需要root就可以抓包;     2)可以用真机抓包,有些程序是抗动态分析的,能够判断自己运行在模拟器中。

缺点:1)必须要用WiFi连接(没有路由器的话可以在笔记本上下载个WiFi程序即可,网上有很多。或者台式机使用移动WiFi,淘宝有很多,10来块一个);    2)要抓包分析的应用程序必须自己支持代理服务器的设置。

以上是关于Fiddler 抓取HTTPS的网络数据的主要内容,如果未能解决你的问题,请参考以下文章

怎样使用 fiddler抓取网络数据包

fiddler抓取手机上https数据失败,全部显示“Tunnel to......443”解决办法

现在为啥我使用fiddler4抓取iphone上开发版的小程序的https包点击时提示“网络请求失败”

fiddler2在抓包的过程中如何抓取https网络包的呢

fiddler如何抓取APP请求的数据包

Fiddler中如何抓取app中https(443端口)数据