这一章节主要应对上一章(安卓APP抓包教程(一)——使用fiddler抓包)末尾提到的即使开了代理,发现APP不仅能够正常使用、没提示证书问题而且fiddler上也看不到相关的请求信息的问题。
从这一章开始会涉及到上google play(下载安装drony,Google play下载安装会好一些)的一些操作,如果搞不定的话,就只有先搜一搜网上已有的APP。
需要准备的软件:
- drony——可以与代理身份验证一起使用的代理,Android OS仅具有不带身份验证的代理。
- fiddler(上一章已经提过了,本章不再赘述)
原理解释:
- APP限制了不使用默认系统代理,导致通过WiFi设置的系统代理失效。
- drony 通过使用VPN的手段,截获了设置的APP的所有流量,再将这部分流量转发到fiddler的监听端口,强制这部分流量通过fiddler,fiddler就能对抓到的请求进行截获,查看。
使用流程:
安装drony之后,可以在虚拟机执行该章节操作,方便切换安卓版本,打开执行接下来的操作:
前置步骤:虚拟机安装fiddler的证书。详情操作见上一节:安卓APP抓包教程(一)——使用fiddler抓包
-
打开dronyAPP,左滑切换到设置界面
-
进入无线网络设置界面
-
WiFi界面长按当前连接的WiFi,点击编辑
在这个地方可能会遇到几个问题:
- 不显示WiFi列表,一般真机会遇到这个问题。需要在权限里面允许drony定位、读取应用列表、开关WLAN,然后重启drony就可以恢复显示。了
- 显示了非常多的WiFi列表:这个是由于的drony会显示所有系统保存过的WiFi列表,而不是当前能够搜索到的WiFi。
- 设置fiddler代理ip和端口
ip和端口不懂设置多少的,请根据上一章的内容进行设置和获取:安卓APP抓包教程(一)——使用fiddler抓包。
-
往上滑,查看下面的更多设置,设置过滤默认值和进入规则设置界面
-
点击加号添加规则
-
行动(action)选择本地代理链全部,然后点下面的APP选择,选择要抓包的APP。如果不选择APP,则会把所有APP的请求都转发过去,容易造成误判。
-
点击右上角保存按钮保存当前过滤规则配置
-
配置完成,回到规则列表界面,再次确认规则
-
返回主界面,点击开关,打开代理转发
-
fiddler上查看请求内容。
总结
- 完全按照流程来,还是抓包失败,甚至提示证书验证也失败的情况。此时可以尝试把浏览器也加入抓包的规则,看看浏览器是否能够正常访问http网站和https网站。
- 如果能访问http,而https网站访问失败,应该是fiddler的证书出错了,可尝试安卓重新添加证书,或者fiddler下载安卓ios插件后,重置证书,再在手机上重新安装。
- 如果都不能访问,请检查drony的配置是否正确,如果确认是正确的,可以换个模拟器或者安卓系统版本再重新配置和尝试。
- 如果按照配置来,依然app访问失败,甚至app出现了奇怪的报错,此时应该考虑APP是将https的公钥内置,不信任系统或者用户设置提供的证书,导致fiddler的证书无法被APP信任,导致APP报错。
很不巧,我遇到的这个APP正好是第二种情况,并且经过一系列探查,发现该APP是flutter框架开发的,而flutter框架默认就内置了HTTPS证书了,所以还需要进行flutterAPP的抓包操作,这个方法对每个APP和每个版本的flutter操作都有所变化。
对flutter框架开发的APP的抓包具体方法和内容将会在下一章进行讲解
安卓APP抓包教程(三)——使用frida破解flutter APP证书检测抓包