初识Fiddler
之前公司开发的时候简单的用过一次Fiddler,主要用来将服务器端的js替换成本地修改过的js进行测试。当初用到的主要是AutoResponder,截图如下,因为跟主题无关,不做赘述。
进入主题:Fiddler手机抓包
1. 搞懂Fiddler的原理
Fiddler会在本地创建一个代理服务器,用来转发所有通过本地发出的网络请求和相应,因为数据都需要通过这个“中间人”-代理服务器,所以它就能够把所有的数据包都拿到,并进行解析。例如对Https进行解密。
他是用的代理地址是127.0.0.1,端口号是8888
2. 开始实践
软件环境:Windows10,Fiddler4,IOS13
前提条件:安装Fiddler的机器,跟手机在同一个网络里, 否则IPhone不能把请求发送到Fiddler的机器上来。
2.1 Fiddler的设置
网上有说需要手动设置浏览器的代理,但我在实践过程中并不需要,有可能是Fiddler版本的问题,Fiddler4会自动进行设置。
Tools --> Options,进入HTTPS,勾选项需要跟下图一致:
进入Connections,勾选项需要跟下图一致:
其中“Allow remote computers to connect”一定要勾选,用来允许手机连接到本地,设置代理服务器用的。
在Fiddler4设置完上面两项之后,重启Fiddler。
打开Cheome浏览器“设置--高级--系统--打开您计算机的代理设置--手动设置代理”,可以看到使用代理服务器开关已经打开,地址为:http=127.0.0.1:8888;https=127.0.0.1:8888;ftp=127.0.0.1:8888
2.2 手机端设置代理
先查看Fiddler所在机器的ip,例如是11.12.13.123。
然后设置手机代理,因为每个人手机不同,这里不做截图说明,免得误导各位,网上一抓一大把。
IPhone设置代理:https://jingyan.baidu.com/article/08b6a5916a4e5614a80922c2.html
Android设置代理:https://jingyan.baidu.com/article/f0e83a256436ec22e4910169.html
需要说明的是:代理ip为:11.12.13.123,端口号:8888,其他都不需要填。
2.3 手机端安装证书
接下来用系统自带浏览器打开:http://11.12.13.123:8888, 会显示如下页面:
会提示你安装证书,IOS13需要到“settiings -- general -- profile”里面,Android直接点击下载的文件进行安装即可(类如下面的图)。
证书安装成功后,你打开手机浏览器访问一下百度,如果在Host里面看到有m.baidu.com,就说明成了,Fiddler已经可以抓包了。
使用技巧和踩坑总结
1. Filters的使用
左侧抓包的记录会很多,我们往往只关注制定host下面的网络请求,可以在Filters下面进行过滤:
2. 你的IPhone如果正在使用VPN,将无法抓包
解决方案:请关闭你的VPN
3. IPhone下设置完代理,可以打开网页但app提示网络问题
解决方案:应该是证书不一致的问题。
4. tunnel to 443无法抓包
参考一下这个方案:https://www.jb51.net/softjc/600014.html