图源:极简壁纸
aHR0cHM6Ly93d3cucWltYWkuY24vcmFuay9pbmRleC9icmFuZC9mcmVlL2NvdW50cnkvY24vZ2VucmUvMzYvZGV2aWNlL2lwaG9uZQ==
这个站点在我刚刚学习 js 逆向的时候,困扰了当时的我很久,完全不知道这个值是如何生成的
听群友说修改了,正好分析一下
刷新页面,可以看到如下的请求
请求参数 analysis 就是需要分析的加密参数
从 js 调用栈进去,打上断点
刷新可以看到参数已经生成了,需要向上找到没有生成的地方继续分析
网上两个堆栈,可以看到如下的代码逻辑
这里的 interceptors 相信大家应该都不陌生,目前很多请求的加密参数生成很喜欢将逻辑放在这里
先打上断点,然后再次刷新网页
从这个位置点击进去然后打上断点
这里面的位置就是加密参数生成的位置了
最后生成加密参数的值是 z[V1](e),所以先看下 e 是怎么生成的
这里的 e 是由 a 和 d 计算生成的
这里的 a 是由 base64(sort(params).join("")) 以及 urlpath 还有一些常量用 @# 拼接起来的结果
然后这里的 d 是一个常量,应该就是关键的 key
这里的 key 就打个码,大家感兴趣可以自行分析
这两个参数传入 i[jt] 还有 i[qt] 就可以生成正确的 analysis 参数了
而这里的 a 参数在网页上的计算逻辑用到了 cookie 中的值
通过正则将需要的 cookie 值匹配出来,然后参与到 a 值的后半部分计算
不过经过测试,这个部分的校验在没有 cookie 的参与下也是可以生成有效的值的(网页上是个 || 逻辑)
所以只要构造好参数然后扣取 i[jt] 还有 i[qt] 就可以生成加密参数了
End.
以上就是全部的内容了,咱们下次再会~