金融类IOS APP端渗透测试实战分享

华盟原创文章投稿奖励计划

前言

金融类APP的测试始终是一项挑战,尤其是在Android应用的防护策略日益完善,加壳和加固机制多样化的背景下,这种情况更突显了iOS APP测试的重要性。本文将以作者对金融类iOS App的一次渗透测试实践为基础,分享一些iOS App安全测试的方法和经验。

测试工具:越狱iPhone  Frida BurpSuite Mitmproxy

绕过越狱检测

通过App Store安装APP,运行APP发现提示处于越狱状态并闪退。

自动草稿

这里有两个解决思路:

  1. 屏蔽越狱插件 or frida hook写绕过越狱脚本

  2. 通过AppstorePlus下载低版本APP程序

这里通过两种方式结合,下载安装安装低版本APP并加载屏蔽越狱插件成功运行该APP。

绕过证书固定

运行APP,设置BurpSuite代理发现抓不到包。

尝试启用SSL Kill Switch 2 插件以绕过该APP的证书固定。

自动草稿

重新点击运行APP并点击功能,通过设置代理成功抓到数据包。

自动草稿

追踪加解密函数

多次请求数据包发现请求和响应均为乱码,考虑传输数据包进行了加密。

解决思路:

  1. 砸壳,反编译源二进制程序,查找分析发包/加密函数

  2. frida-trace跟踪 sm2/sm3/sm4/aes/rsa等含有加密关键字的函数

这里使用了frida-trace跟踪,通过多次点击功能按钮确认使用了AES加密

frida-trace -UF -m "*[* *aes*:*]"

自动草稿

编写frida-trace脚本

自动草稿

打印参数值以获得其AES加密的key和iv

自动草稿

复制BurpSuite中数据包的HEX数据使用该key和iv进行解密尝试。

自动草稿

成功解密出明文数据。

Mitmproxy+BurpSuite 交互式数据传输

由于请求包与响应包均为加密数据包,使用Mitmproxy编写脚本,以方便BurpSuite进行测试。

自动草稿

Mitmproxy脚本调试通过后,即可结合BurpSuite进行双向加解密。

IPhone 设置代理7070端口

mitmdump -p 7070 -s up.py –mode upstream:http://127.0.0.1:8080 -k –ssl-insecure –no-http2

mitmdump -p 9090 -s down.py -k –ssl-insecure

BurpSuite监听8080端口,设置上游代理为9090端口

自动草稿

成功实现请求响应均为明文数据,可进行常规测试。

出洞

最后就是猎杀的时刻~

自动草稿

本文作者:Depin, 转载请注明来自FreeBuf.COM

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文


END

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容