前言
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
太久不更新 重新找回号 发一下文章吧
目标网站
无
抓包流程
这里使用@流星Studio 大佬的工具来抓包。
这里发现有两个加密的地方,一个是mtgsig。一个是_token


token
token简单说下解密规则吧 解密URL 之后其实就一目了然。
解密方法。其实也是常规加密。
然后解密之后发现如下图所示

可以发现解出来是个字典。然后底层还有个Sign。
然后继续解密

进而发现是请求体。后面挨个拼接然后加密即可。
mtgsig
其实之前的一篇文章我写过 小程序mtgsig的分析【https://mp.weixin.qq.com/s/yKkkcsFAMQb2AIZd9FSZLg】。有兴趣的朋友可以看看。仔细看了下 其实大体好像没什么变化。
今天就重新来搞一下。

这里定位点卡在这里。就可以了
值得注意的是。这也是个switch流,这里我为了方便直接没走在上面那个端点。大家随意看看就好。
可以看到 有非常多的混淆。不过这个混淆相对的简单
其实就是个n函数替换。
也不必考虑通用性 把n函数全扣下来 写个AST就行。
js
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 看看行不行。 一切完美。

具体参数逻辑 以及参数 代码 在我的星球中。可付费自取