宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述fiddler抓包1-app应用抓包相关的知识,希望能为你提供帮助。
一、抓取app的https协议
1、fiddler工具配置
在Tools->
Options切换到Tab页HTTPS,勾选下图中箭头指向的复选框,并确认是否缺少协议,若缺少默认的协议,则增加,如缺少;
tls1.2,注意分号间隔。
文章图片
切换到tab页Connections,勾选Allow remote computers to connect。
文章图片
由于默认的证书不符合andriod和ios的证书要求,所以需要下载CertMaker插件,双击安装后,重启fiddler。注意这一步很重要,必须使用CertMaker插件,不要使用默认的证书生成器,否则抓不到包。
下载地址:https://www.telerik.com/fiddler/add-ons
文章图片
2、手机设置代理
首先确保手机与PC在同一个局域网内,鼠标移动到fiddler右上角的Online上,可以查到PC的IP地址
文章图片
IOS手机:设置-> 无线局域网-> 找到连接的无线网络,设置HTTP代理,服务器填写的要与Online中的IP地址一致,端口填写8888。
安卓手机:设置-> WLAN-> 找到连接的无线网络--> 代理选择"手动"-> 主机名填写的要与Online中的IP地址一致,端口填写8888。
设置完代理后,打开手机浏览器,地址输入:PC的IP地址:8888(如10.66.88.101:8888),点击最下边的FiddlerRoot certificate,确认安装。
文章图片
IOS手机安装完证书后,在设置-> 通用-> 关于本机-> 证书信任设置,找到刚安装的证书,并打开,如下图。
【fiddler抓包1-app应用抓包】
文章图片
设置完fiddler工具及手机端的IP代理、证书安装后,一般就可以抓取app端的https的请求数据
文章图片
二、经过以上常规设置后,若还是无法捕获https协议
1、显示Tunnel to...443
可能原因是IOS的版本为10以上,安卓应用用的是的api 24 以上
IOS的解决方法:设置-> 常规-> 关于本机-> 证书信任设置,开启fiddler的证书(相当于同意全量监控,所以其他应用不要乱开 通), 再试试扑包,应该就可以显示了
安卓api 24以上的解决方法: 安卓没有提供系统层面上的设置,所以只能在应用上下功夫了,需要在应用代码配置中进行配置,相当于开发者留后门,否则只能root设备了,然后绕过证书验证了。严格意义上来说,安卓这是无解的,下面提供代码配置内容
< network-security-config>
< debug-overrides>
< trust-anchors>
< !-- Trust user added CAs while debuggable only -->
< certificates src="https://www.songbingjia.com/android/user" />
< /trust-anchors>
< /debug-config>
< /network-security-config>
三、其他问题
fiddler捕获不了的情况分析:
1、fiddler并不是支持所有协议,目前已知的有http2、tcp、udp、websocket等,如果应用使用了以上协议,那么fiddler则无法捕获。fiddler无法捕获http2是因为fiddler是基于.net framework实现的,而.net framework不支持http2。
2、fiddler抓包的原理是中间人攻击,即两头瞒,欺骗客户端和服务器端,如果https证书写死在app里,也就是,app不信任fiddler颁发给它的证书,app只信任自己的证书,fiddler无法瞒客户端了,因此fiddler也就无法抓包了。如果
是自己开发的app,开发调试方便起见,可以使用类似wireshake工具导入服务器证书,抓包解密。
四、参考
fiddler抓包for ios :https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForiOS
fiddler抓包for android :https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForAndroid
tunnel to 的完美解决:https://blog.csdn.net/lx_zsdong/article/details/82257698
https://blog.csdn.net/wang1472jian1110/article/details/79460289
常见异常解决方法:https://www.cnblogs.com/joshua317/p/8670923.html
关于android 7.0 无法进行https抓包的问题:https://www.cnblogs.com/wytings/p/6954293.html
推荐阅读
- android双向数据绑定data-binding使用include时的使用方法
- 2019/2/15安卓应用——记账本,开发记录
- Flutter - 本地化启动列表中App名字
- Tensorflow中循环神经网络及其Wrappers
- Android 自定义倾斜字体
- APP前端易用性和UI测试
- Android添加百分比布局库时显示Failed to resolve: com.android.support.percent:问题
- Android 自定义圆形图表
- 客户生命周期价值(CLTV)