目前微信PC版可以打开小程序了,也就为微信小程序的抓包提供了便利,毕竟客户端可用的辅助软件太多了。微信app对运行的环境,如模拟器、VirtualXposed等虚拟空间进行了检测限制,因此无法使用信任证书、Xposed的插件JustTrustMe和TrustMeAlready对小程序接口进行抓包。
本文提供一种实测可用的靠谱方法,帮助安全工程师进行移动端微信小程序api接口的安全测试和分析,整体流程如图:
手机打开小程序,小程序-->更多资料,可以看到小程序的开发者和相关的数据提供接口,ping接口对应的域名,查看域名绑定的服务器或CDN ip地址,并记录。
修改电脑Hosts文件,将小程序接口的域名绑定到127.0.0.1上,如图:
1、Proxy-->Options-->Proxy Listeners设置代理,指向443端口。微信小程序的接口要求使用https,如果是其它使用http的客户端应用,代理端口指向80,Bind to addresss选择All interfaces,否则可能无法勾选设置好的代理。题外话,代理端口指向80的时候没有成功,本机也没占用80端口,不明所以。
**2、**勾选Support invisible proxying(...)
3、Project Options-->Hostname Resolution设置,输入之前获取到的微信小程序api接口的域名和域名解析的ip地址,burp将使用此设置代替计算机提供的DNS解析。
可通过手机分享小程序的功能页面给其它人,然后在小程序PC客户端打开,回到主页之后可对小程序的所有功能进行抓包操作。