0.1 前言

在进行小程序的渗透的时候发现请求包中的请求体是加密数据,本意是开发人员不想让人看到其中的数据:

  1. 防止数据被轻易窥探

  2. 防止请求被重放

  3. 增加逆向工程难度

  4. 保护敏感业务逻辑

    如下图所示:

image-20250708115933248

0.2 绕过

0.2.1 工具

下面我将用实战案例描述针对这种类型的站点我们怎么样进行绕过。

所需工具:

0.2.2 思路

小程序请求体的数据是加密一般加密算法在前端的JS中,在发送请求数据包的时候,就把关键数据进行加密,其中我们也可以利用这个特性找到加密算法:

  • 通过强开F12断点调试小程序前端查找加密算法
    • 优点:更加清晰准确的找到加密算法,而且定位准确
    • 缺点:微信号容易被封
  • 通过反编译小程序从源码中查找加密算法
    • 优点:微信号不容易被封,且找寻算法过程较快
    • 缺点:会定位到很多加密算法,需要挨个尝试加密算法

以上两点均可以找到关键加密算法,下面中我将使用通过反编译查找加密算法

0.3 方法

0.3.1 反编译寻找关键点

使用fine工具针对小程序进行反编译

image-20250708161016225

得到源码之后,我们在进行全局搜索关键词encrypt、decrypt、AES、RSA

image-20250708145311627

其中,我们可以通过webStorm直接搜索到关键点

image-20250708145726938

由于小程序反编译之后代码比较凌乱找寻起来比较耗费时间,此时我们可以仔细观察:

  1. 带有KEY字段的样式以及:enc.Utf8.parse以及AES.encrypt这种关键信息

image-20250708145925286

这时,我们通过刚刚上面两种方式就可以找到关键点,包括加密信息:

image-20250708150255196

  1. 或者使用自动化匹配脚本:https://github.com/RuoJi6/script-demo/tree/main/python/extract_keys

下载脚本,修改脚本main函数中的search_directory指向指定小程序反后的目录

image-20250708152521917

image-20250708152626111

运行脚本,可以得到如下信息:

image-20250708153940826

其中,我们可以从中的得到关键的信息,通过全局搜索脚本得到的信息,我们可以找到关键的加密算法以及密钥还有偏移。

image-20250708153620744

也可以通过加密摘要得到信息

image-20250708154408880

得到的加密代码可以直接给AI进行识别:

image-20250708155254661

0.3.2 自动化加解密

使用Burp Suite抓包工具,使用CloudX进行加解密测试

0.3.2.1 加载插件

image-20250708155424912

0.3.2.2 解密流程

此时抓包,我们可以找到红框内为加密数据

image-20250708155657544

选中数据包,发送到插件

image-20250708155821603

请求参数->请求体->requestBody->加解密配置->选择我们找到的算法

image-20250708155914237

我们填入对应的值,点击解密,就可以成功解密数据

image-20250708160339249

0.3.2.3 自动解密

我们可以设置,爆破模型下,以及抓包,重放包模式下,自动加密解密:

点击下图中的按钮,添加,就可以在抓包,重放包模式下,自动加密解密

image-20250708160308792

测试是否正常:点击查看当前已配置的规则->执行->就可以看到黄色样式,表示成功

image-20250708160421769

此时我们在进行抓包,就可以看到抓到的包已经是加密了的,而且不管是重发包以及爆破模式下,都是自动加解密。

image-20250708160640780