大神论坛

找回密码
快速注册
查看: 341 | 回复: 0

[经验分享] 对 自考王者 微信小程序的AES加密分析

主题

帖子

0

积分

初入江湖

UID
582
积分
0
精华
威望
0 点
违规
大神币
68 枚
注册时间
2023-09-16 15:06
发表于 2023-10-14 15:26
本帖最后由 zxd13618567698 于 2023-10-14 15:26 编辑

对自考王者小程序的AES加密分析

前言
本人主要是报了自考在这个小程序上面做题,就研究了一下这个接口本文仅供学习交流使用,请勿随意传播。
如有侵犯你的权益及时联系我删除。

工具:主要用到这位小哥的 微信调试 工具   https://www.dslt.tech/article-3946-1.html

一、抓包分析
打开小程序,打开devtools 工具,这里就不啰嗦,直接上过程。

点击initiator,

点击红框进入 。
一般的加解密的关键字都是decrypt,encrypt ,反正各种关键字使劲搜就完事了 。
我这里搜的是解密的关键词 decrypt 。。找到好多处。下断点测试 。

此处下断点 。

可以看到加密方式是AES加密的 。其实他这里用到的是 CryptoJS 的前端解密的 。加密方式是 CBC-128 。

二、结束
CryptoJS 是一个三方的JS库。写一段代码证明一下。

function cryptoDecrypt_(e) {
var t = n.crpytoConfig.AES_IV
, o = n.crpytoConfig.AES_KEY
, c = e.replace(/\_/g, "/").replace(/\-/g, "+")
, a = CryptoJS.enc.Utf8.parse(o)
, u = CryptoJS.enc.Utf8.parse(t)
, p = CryptoJS.enc.Base64.parse(c)
, f = CryptoJS.enc.Base64.stringify(p);
return CryptoJS.AES.decrypt(f, a, {
iv: u,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8).toString()
}

console.log(cryptoDecrypt_(str));

得到了明文。

加密的方式也是一样的。整体来说还是比较简单的。

第一次发逆向JS的帖子。都不知道咋编辑的好。各位看官见谅哈。

如果有违规,可以删除。

返回顶部