前言
本文章中所有內容僅供學習交流,抓包內容、敏感網址、數據接口均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關,若有侵權,請聯系我立即刪除!
太久不更新 重新找回號 發一下文章吧
目標網站
無
抓包流程
這里使用@流星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