44

JS逆向- 刺猬猫加密逻辑分析

 3 years ago
source link: http://xianyucoder.cn/2020/07/16/每日JS-刺猬猫/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

目标网站:

aHR0cHM6Ly93d3cuY2l3ZWltYW8uY29tL2NoYXB0ZXIvMTAzNTQzODcy

抓包分析与加密定位

先抓包分析一波【图1-1】

MVj6F3F.png!mobile

通过抓包可以看到一个比较明显的加密请求,具体是不是还是要通过检索关键字定位一下。

像这类带有字段名称的内容直接搜索键名有比较大的可能性能定位到。【图1-2】

AveuUbV.png!mobile

检索结果只有一条,点开再检索一次【图1-3】

quIB73a.png!mobile

在检索的文件中再次检索有两个结果,但是通过结合上下文的代码,可以大致分析出【图1-3】中建投标注的地方才是解密的地方,先打上断点,重新加载下页面【图1-4】

rAJB7jB.png!mobile

可以看到上面 sucess 方法中传入的值 res 就是我们在 network 中请求的返回值。

我们从 275 行追进去看看是不是我们需要的加密。【图1-5】

QVbM32f.png!mobile

这里的 myDecrypt 返回的值就是解密后的值。【图1-6】

eUFriiN.png!mobile

这样就定位到了加密的位置。接下来就需要将解密的逻辑扣取出来就可以了。

加密分析与扣取加密逻辑

先看下解密代码的主题部分

myDecrypt: function(f) {
            var g = new b([]);
            return g.decrypt(f)
}

打上断点,可以看到 f 中大部分值是我们请求返回的值,但是有一个 accessKey 在请求的返回值中没有包含【图2-1】

JBVzEfA.png!mobile

其实这个值包含在【图1-1】中的上一个请求的返回值当中。【图2-2】

ZNNzu22.png!mobile

找到这个 accessKey 之后传入的值就齐全了,接下来继续分析

可以看到解密的主体部分是 decrypt 这一段,但是前面一段花里胡哨的没啥卵用【图2-3】

aa6ZVbV.png!mobile

这里的 s 就是我们传入的值,和【图2-1】的 f 没啥不一样的,所以我们直接传入就好了。【图2-4】

2qAzAjN.png!mobile

接下来的逻辑就非常简单了,缺啥补啥, CryptoJS 直接导入, Base64 需要简单改改,代码比较多就不上了,直接上个运行结果。【图2-5】

nMJnm2q.png!mobile

以上就是今天教程的全部内容了,感觉有帮助的朋友来波好看支持一下~

感谢~

EOF


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK