小程序一次一密流量解密
2024-1-19 16:54:46 Author: www.freebuf.com(查看原文) 阅读量:14 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

前言

目前越来越多的企业对互联网公开服务的数据报文进行流量加密的方式进行传输。但是不管是Web端还是APP端,只要是采用对称加密算法进行加密的话,那么攻击者在用户端在代码中是一定能够获取密钥的。

因此现在有一些应用采用类似HTTPS的方式对数据报文进行加密处理。即,利用随机数函数生成一个随机数,然后使用随机数作为对称加密的密钥对数据报文进行加密,然后使用非对称加密算法对随机数进行加密,然后将加密过的随机数和加密后的报文一同发送到服务器端。

这样即解决密钥固定的问题,而且攻击者即使获取了密钥也只能保证一次有效。对于Android 端,由于Frida这个外挂的存在,我们可以利用Frida去Hook随机数函数来固定随机数。对于Web端,因为浏览器并不会去验证下载网站的完整性,因此我们可以使用BurpSuite 网站源码进行拦截替换来固定随机数。

然后对于微信小程序来说,一方面很难通过Hook的方式去Hook v8 来达到固定随机数。另外一方面,由于微信对小程序包的加载机制,直接修改也无效。

本文主要提供一种在Windows 平台对使用一次一密加密方式的微信小程序流量破解的解决方案。

抓包

我们使用两种工具对小程序的报文进行抓取

  • BurpSuite

  • Proxifier

对于渗透测试人员来说,BurpSuite的干饭的工具,使用的方法就不再介绍。需要注意的是需要在客户端提前安装BurpSuite的证书

对于Proxifier

我们首先添加 ProxyServer 到我们BurpSuite 监听的端口

然后在Proxification Rules 中微信运行小程序的exe 让其走我们的代理。

wechatappex.exe 的路径获取方法如下:


文章来源: https://www.freebuf.com/articles/web/390152.html
如有侵权请联系:admin#unsafe.sh