1、下载fiddler
Fiddler官网下载地址:http://www.fiddler2.com/fiddl
2、安装fiddler
安装过程就是下一步下一步最后完成即可,安装好了以后需要配置一些内容
3、设置fiddler
3.1 设置允许抓取HTTPS信息包
打开下载好的fiddler,找到 Tools -> Options,然后在HTTPS的工具栏下勾选Decrpt HTTPS traffic,在新弹出的选项栏下勾选Ignore server certificate errors。这样,fiddler就会抓取到HTTPS的信息包
3.2 设置允许外部设备发送HTTP/HTTPS到fiddler
在Connections选项栏下勾选Allow remote computers to connect
4、设置手机端
设置手机端之前,我们需要记住一点:电脑和手机需要在同一个网络下进行操作。 可以使用wifi
或者手机热点
等来完成。
假如你已经让电脑和手机处于同一个网络下了,这时候我们需要知道此网络的ip地址
,可以在命令行输入ipconfig
简单的获得,如图。
下面来对Android手机进行代理设置
确定一下手机和PC是连接在同一个局域网中
进入手机的设置->点击进入WLAN设置->选择连接到的无线网,长按弹出选项框:如图所示:
将代理设置成手动,将上面获取到的ip地址和端口号填入,点击保存。这样就将我们的手机设置成功了。
解决手机连不上同一IP网络问题:https://blog.csdn.net/shuiziliu1025/article/details/80911811
5、下载Fiddler的安全证书
使用Android手机的浏览器打开:http://192.168.1.96:8888, 点"FiddlerRoot certificate" 然后安装证书,如图:
6、测试
最后就是来测试下,打开手机随便一个APP,去访问里面的内容,这时打开fiddler可以看到所发出的网络请求。
7、分析数据
通过观察fiddler中的请求可以发现http://api.douguo.net/personalized/home/0/20,这个就是请求首页中的部分数据,直接把地址复制到网页中可以看到返回的JSON数据
8、后续的问题
同理,也可以抓取手机QQ、支付宝、淘宝等,不过手机QQ有些走的http2协议,所以抓不到,这种情况就得用wireshark抓包了,不过抓取后,解密是个问题。
1. fiddler抓不到的情况分析
fiddler并不支持全部协议,目前已知的有http2、tcp、udp、websocket等,如果应用走了以上协议,那么fiddler肯定是抓不到的。
http2:因为fiddler是基于.net framework实现的,因为 .net framework不支持http2,所以fiddler无法抓取http2
2. 证书写死在app中,fiddler不能抓取
fiddler抓包的原理是中间人攻击,也就是说,两头瞒,欺骗客户端&&欺骗服务器端,如果https证书写死在app里,也就是说,app不信任fiddler颁发给它的证书,app只信任自己的证书,fiddler没法瞒客户端了,因此fiddler也就抓取不到包了。
再多说几句,如果是自己开发的app,开发调试方便起见,可以使用类似wireshark的工具导入服务器证书,抓包解密。
3. 修正不能抓取包问题
除了上述已知不能抓包的情况,其他情况都应该能抓取。以下是排查,修正问题的步骤。
4. 确认能否抓到手机浏览器的百度首页
因为百度是https加密的,所以如果配置正确肯定是可以抓到的。注意,我这里说的是三个条件,手机、浏览器、百度网页的首页,这些条件,都得满足 。
5. 重新安装证书
如果抓不到,可以确定是配置有问题。核实fiddler使用certmarker插件并且在手机上也安装了;如果已安装,则重新安装。 如果还不work,那么,重新生成证书,电脑和手机都重新安装,然后重启fiddler。一般来说,重新安装手机上的证书就解决问题了。