目标网址:aHR0cHM6Ly93d3cucWltYWkuY24vcmFuay9pbmRleC9icmFuZC9hbGwvZGV2aWNlL2lwaG9uZS9jb3VudHJ5L2NuL2dlbnJlLzM2 (需要进行ba64解码即可获取到参数)
需要逆向的加密参数:analysis
1、点击数据接口,触发请求
2、点击载荷,可以看到有一个名为analysis的签名,类似加密,经过作者验证,不同的数据接口,加密的结果不同
3、进行XHR断点,查看加密过程,复制查询路径,问号前面的就是查询路径 ,可以全复制包括域名和协议,也可以只复制查询路径(域名后面到问号的地方即可)
4、点击全部,触发请求,可以看到断点在send处停止
5、点击跳过下一步函数调用按钮(标红的哪个地方),点击三次
6、点击三次后,断点在then方法,then方法时axios响应拦截回调的方法
7、点击进入函数内部按钮(标红处)
8、再次点击跳过函数调用按钮(点击两次),可以看到响应拦截器获取到了数据
9、再次点击点击跳过函数调用按钮(点击两次),进入到响应响应拦截器内部
10,由此可以推断,请求拦截器(发送请求前,进行拦截修改)就在上面,我们往上翻,可以看到请求拦截器在响应拦截器的上面,找到请求拦截器有什么用呢?
它主要是用来在请求发送前对请求体,或者请求参数进行加密、解密等操作,以保证请求的安全性和正确性。此外,请求拦截器还可以对请求头、请求体、请求尾部等部分进行处理,例如设置请求头、添加后端验证码等,以增强整个请求的安全性和可靠性。
11、由此我们可以断定,analysis参数就是在请求拦截器进行加密,我们给请求拦截器加上断点调试:
12、点击小三角按钮(跳到下一个断点处)
13、ctrl+R 全局刷新网页,进入断点,点击两次半圆按钮(跳过下一个函数调用)
14、可以看到e是解密结果,我们需要把e的结果搞清楚:
e=(0, i[jt])((0,i[qt])(a, d)) 0表示代码执行的优先级
15、在控制台输出e的值,得以下结果:
16、我们对e拆解后:
(i[jt])((i[qt])(a, d))
(i[jt])=v方法
(i[qt])=h方法
17、得知 v是一个加密方法,h方法传入两个参数,得出的结果被v方法解密,最后形成我们需要的analysis的值
18、扣出v方法和h方法,鼠标放在 (i[jt])上面即可弹出此画面,点击标红出进入v方法内部
19、复制v方法,使用类似的方法把h方法复制出来
20、需要注意的是:缺啥补啥,以上是大致思路
因为文章长度有限,本文章到此结束,需要抠完js代码请私信我(私信内容:七麦js)
看看node执行效果:
PS:有用的话记得点个赞!