
拦截Flutter应用程序的流量是众所周知的难题。与标准的Android应用不同,Flutter使用Dart语言开发,它不遵循系统的代理设置。这意味着仅仅在手机上设置WiFi代理无法捕获其网络流量。
在本指南中,我们将通过使用reflutter修补应用程序二进制文件来绕过这一限制,从而通过Burp Suite成功拦截流量。
在开始之前,请确保已安装以下工具:
从APKPure或APKCombo等来源下载目标Flutter APK。
关于XAPK文件的说明:
如果下载的是.xapk文件,不能直接使用。必须首先使用APKEditor将其合并为标准APK。
如果需要,将XAPK转换为APK:
# java -jar /path/to/APKEditor.jar m -i /path/to/app.xapk
sudo java -jar /Users/user/Documents/APKEditor-1.3.9.jar m -i /Users/user/Downloads/12.10.2_APKPure.xapk我们将使用reflutter来分析库文件并重写处理SSL证书锁定和代理设置的代码。
首先,安装该工具:
pip3 install reflutter接下来,对APK执行reflutter:
# reflutter /path/to/your_app.apk
/Users/user/Library/Python/3.9/bin/reflutter /Users/user/Downloads/12.10.2_APKPure_merged.apk配置过程:
工具会提示进行选择。请选择选项1:流量监控和拦截。
然后它会询问你的机器IP地址。这是运行Burp Suite的计算机的IP地址(不是模拟器的IP)。
查找本地IP的方法:
ifconfig命令(查看en0或wlan0接口)ipconfig命令reflutter将生成一个名为release.RE.apk的新APK文件。
如果签名无效,Android将拒绝安装APK。由于我们修改了二进制文件,必须使用uber-apk-signer重新签名。
运行以下命令:
# java -jar uber-apk-signer.jar --apk release.RE.apk
java -jar /Users/user/Documents/uber-apk-signer-1.3.0.jar --apk /Users/user/release.RE.apk看到"Successfully processed 1 APKs and 0 errors in xx seconds"消息即表示成功。将创建一个名为release.RE-aligned-debugSigned.apk的新文件。稍后我们将在Genymotion中安装此文件。
由于reflutter将应用程序修补为直接向特定IP和端口发送流量(绕过标准代理握手),我们必须通过隐形代理配置Burp以接受此流量。
我们使用Genymotion是因为它通常比标准的Android Studio模拟器更快、更容易获取root权限和配置,尽管此方法适用于任何设备。
release.RE-aligned-debugSigned.apk文件拖放到模拟器屏幕上进行安装。由于Dart处理网络流量的特殊方式,逆向工程Flutter应用程序需要特定的方法。通过使用reflutter,我们成功绕过了通常阻碍标准拦截尝试的SSL证书锁定和代理检测问题。
⚠️ 免责声明: 本指南仅用于教育和安全研究目的。在对他人软件进行逆向工程或渗透测试之前,请务必确保已获得应用程序所有者的授权。
祝黑客之旅愉快!FINISHED
CSD0tFqvECLokhw9aBeRqvJmZ3VQuQ9+032ugeDdA+zvHYOtRoGldYD4T+JurcVdtK9A33uh5+tZRYSHa92stvwcLpXHbJg9quxlxcQuSqVQWIYZ3Asx0BjEKckzT/b+QvBq4C11SP5JycAT+5TJWSLKmW009maf08KQAI2WnlQ=
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。