某团小程序mtgsig,_token 生成逻辑分析
前言
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
太久不更新 重新找回号 发一下文章吧
目标网站
无
抓包流程
这里使用@流星Studio 大佬的工具来抓包。
这里发现有两个加密的地方,一个是mtgsig。一个是_token
token
token简单说下解密规则吧 解密URL 之后其实就一目了然。
解密方法。其实也是常规加密。
然后解密之后发现如下图所示
可以发现解出来是个字典。然后底层还有个Sign。
然后继续解密
进而发现是请求体。后面挨个拼接然后加密即可。
mtgsig
其实之前的一篇文章我写过 小程序mtgsig的分析【https://mp.weixin.qq.com/s/yKkkcsFAMQb2AIZd9FSZLg】。有兴趣的朋友可以看看。仔细看了下 其实大体好像没什么变化。
今天就重新来搞一下。
这里定位点卡在这里。就可以了
值得注意的是。这也是个switch流,这里我为了方便直接没走在上面那个端点。大家随意看看就好。
可以看到 有非常多的混淆。不过这个混淆相对的简单
其实就是个n函数替换。
也不必考虑通用性 把n函数全扣下来 写个AST就行。
traverse(ast, {CallExpression(path) {let { callee, arguments } = path.node;if (arguments.length !== 1) return;if (!types.isIdentifier(callee, { name: "n" })) {return;}if (!types.isNumericLiteral(arguments[0])) {return;}value = eval(path.toString());console.log(path.toString(), ">>>>>", value);path.replaceWith(types.valueToNode(value));},
});
运行下看看结果
其实发现换源的还算不错。
这里我们替换下JS。也用下流星Studio 大佬的工具来做下替换。
后面其实替换出来 基本也差不多了。
这里 a1,a2,a3,a4,a5,a6 包括d1 基本都很清楚
其实总体搞下来 没啥难度。直接硬扣就行了。也不想写了。大家自己往后扣就行。
这里简单聊聊吧。
折叠看下层级
这里可以看到 一堆 定义和引入。
这一块统统不看
直接搜索 w1.3 关键点。
然后往上一直划。找到 require JSguard的地方。
这里到下一个 require /rohr.js 的地方 就是生成mtgsig的地方。
有个小tips 把这些东西全扣下来。
然后往下找方法。找到oe的这个方法 不要问怎么找的。我们打上断点。
这里打上断点 可以知道他的传参。
后续慢慢去看他的方法。跟他的方法
具体的一些风控细节 我放在星球里。大家可以星球向我提问。
其实 真正的难度是风控层。
这里不惹麻烦。简单来说其实就是每个点都需要注意,随机值是一方面 时间戳也是一方面。
剩下大家自己去测试吧
结果
一切都整好。我们跑着一下token 和 mtgsig 看看行不行。 一切完美。
具体参数逻辑 以及参数 代码 在我的星球中。可付费自取
https://t.zsxq.com/4KUdO