Flutter框架开发的安卓app抓包记录
声明
本文属于OneTS安全团队成员Gal0nYu的原创文章,转载请声明出处!本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。
1
前言
最近想对某个app进行渗透测试,满怀期待的打开burpsuite,手机wifi挂上代理,一抓包发现怎么空空如也?!!!
啥包也抓不到,换其他的app发现是可以抓到包的,那就不是我的代理有问题,于是换vpn,postern启动继续抓包,我擦,怎么还是抓不到
后面换了brook(vpn)加charles加burpsuite这套抓包方式,发现抓包还是有问题,证书有校验,用了JustTrustMe,SSLUnpinning等模块还是不行,心态炸裂!不玩了!
用jadx反编译看看,发现libflutter.so,可以得知是flutter开发的app
通过网上资料可以了解到flutter开发的app抓不到https的包的原因有:
1、不走系统代理
2、不支持设置代理
3、不信任系统证书
4、证书校验写死在so文件里,导致JustTrustMe,SSLUnpinning等模块无效
2
解决办法
针对证书校验问题需要用frida去hook libflutter.so中的函数
首先把apk下载到电脑上,重命名apk后缀为zip然后解压,找到libflutter.so文件
然后用ida打开libflutter.so,依次点击view->Open subviews->Strings
ctrl+F搜索ssl_client
双击点击进去
然后ctrl+x追踪
直接点击第一个
F5进去查看伪代码,发现这个函数地址是sub_6DBEF4
这时候需要用到下面这个项目里的代码
.md
把代码中的地址改成上面我们获得的函数地址sub_6DBEF4,然后把代码保存为ssl.js,然后打开app,在电脑上运行frida -UF -l ssl.js
针对不走代理我们可以使用基于VPN模式的brook+charles 转发抓包,然后用brook+charles+burpsuite即可顺利的抓到包,具体这套抓包方式可以看我之前发的文章
重要通知
建立了一个安全技术分享的内部圈子。
将在这分享:
- 前沿安全攻防技术
- SRC挖洞独家技巧
- 钓鱼、免杀
- 内部自研工具、魔改工具等