目标网站:
aHR0cHM6Ly93d3cuY2l3ZWltYW8uY29tL2NoYXB0ZXIvMTAzNTQzODcy
抓包分析与加密定位
先抓包分析一波【图1-1】
图1-1
通过抓包可以看到一个比较明显的加密请求,具体是不是还是要通过检索关键字定位一下。
像这类带有字段名称的内容直接搜索键名有比较大的可能性能定位到。【图1-2】
图1-2
检索结果只有一条,点开再检索一次【图1-3】
图1-3
在检索的文件中再次检索有两个结果,但是通过结合上下文的代码,可以大致分析出【图1-3】中建投标注的地方才是解密的地方,先打上断点,重新加载下页面【图1-4】
图1-4
可以看到上面sucess方法中传入的值res就是我们在network中请求的返回值。
我们从275行追进去看看是不是我们需要的加密。【图1-5】
这里的myDecrypt返回的值就是解密后的值。【图1-6】
图1-6
这样就定位到了加密的位置。接下来就需要将解密的逻辑扣取出来就可以了。
加密分析与扣取加密逻辑
先看下解密代码的主题部分
myDecrypt: function(f) {var g = new b([]);return g.decrypt(f)}
打上断点,可以看到f 中大部分值是我们请求返回的值,但是有一个accessKey在请求的返回值中没有包含【图2-1】
图2-1
其实这个值包含在【图1-1】中的上一个请求的返回值当中。【图2-2】
图2-2
找到这个accessKey之后传入的值就齐全了,接下来继续分析
可以看到解密的主体部分是decrypt这一段,但是前面一段花里胡哨的没啥卵用【图2-3】
图2-3
这里的s就是我们传入的值,和【图2-1】的f没啥不一样的,所以我们直接传入就好了。【图2-4】
接下来的逻辑就非常简单了,缺啥补啥,CryptoJS直接导入,Base64需要简单改改,代码比较多就不上了,直接上个运行结果。【图2-5】
图2-5
以上就是今天教程的全部内容了,感觉有帮助的朋友来波好看支持一下~
感谢~