小程序一次一密流量解密
码农的梦想
2024-05-10 08:40
2024.4.19 方法已经失效
前言
目前越来越多的企业对互联网公开服务的数据报文进行流量加密的方式进行传输。但是不管是Web端还是APP端,只要是采用对称加密算法进行加密的话,那么攻击者在用户端在代码中是一定能够获取密钥的。
因此现在有一些应用采用类似HTTPS的方式对数据报文进行加密处理。即,利用随机数函数生成一个随机数,然后使用随机数作为对称加密的密钥对数据报文进行加密,然后使用非对称加密算法对随机数进行加密,然后将加密过的随机数和加密后的报文一同发送到服务器端。
这样即解决密钥固定的问题,而且攻击者即使获取了密钥也只能保证一次有效。对于Android 端,由于Frida这个外挂的存在,我们可以利用Frida去Hook随机数函数来固定随机数。对于Web端,因为浏览器并不会去验证下载网站的完整性,因此我们可以使用BurpSuite 网站源码进行拦截替换来固定随机数。
然后对于微信小程序来说,一方面很难通过Hook的方式去Hook v8 来达到固定随机数。另外一方面,由于微信对小程序包的加载机制,直接修改也无效。
本文主要提供一种在Windows 平台对使用一次一密加密方式的微信小程序流量破解的解决方案。
抓包
我们使用两种工具对小程序的报文进行抓取
BurpSuite
Proxifier
对于渗透测试人员来说,BurpSuite的干饭的工具,使用的方法就不再介绍。需要注意的是需要在客户端提前安装BurpSuite的证书
对于Proxifier
我们首先添加 ProxyServer 到我们BurpSuite 监听的端口
然后在Proxification Rules 中微信运行小程序的exe 让其走我们的代理。
wecha
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341