先搜收关键词
抓包
可以看到请求头中有三个参数是加密的,而又有两个参数的值是一样的,所以只需逆向X-S-Header即可。
再看请求参数
请求参数也是加密的
接着看响应内容
开始逆向
搜索关键字X-S-Header
(温馨提示不要加:要不然搜不到结果)
格式化代码后搜索X-S-Header
下好断点后,点击下一页触发断点
控制台输出
发现与我们抓住获得的参数一致
打开pycharm新键JavaScript文件
将断点所在行的代码复制其中
(0,
T.A2)(e)
将其改写为我们常用的函数格式
T.A2(e)
现在我们需要找到T的定义,将我们在游览器中下断点的代码往上翻可以找到其定义处
可以看到该网站采用了webpack打包的方式
在T的定义出下断点,并刷新网页(温馨提示:是刷新整个网页,这样才能把webpack的加载器加载进当前网页)
进入T的定义出
可以看到分发器函数
将包含分发器函数的JavaScript文件全选复制到pycharm中
查看代码发现这次的加载器代码和以前的有点不一样,定义了一些模块放在分发器之前,还有就是格式上有一些不同我们需要修改一下。
这是修改后的daim
现在将分发器函数导出,并测试分发器是否能使用
现在需要获取e值,直接在控制台打印
经过反复测试发现可以直接复制e的值
接下来改写加密函数,前面分析过T的定义就不再讨论了,做过webpack逆向的小伙伴都知道webpack需要补模块就是T = r(517)中的517模块,但是我们再修改加载器的时候就发现了里面有517模块,那能不能使用呢?试试不久知道了吗。
可以看到需要补环境了,补好 window 后继续运行代码
继续补齐相应的环境
可以看到补齐环境后,就可以直接出结果
这里提示一下经多次测试e中的headers可以不要也能出结果
接下来处理请求参数
开始跟栈
跟到这里可以看到数据
这是请求参数
下断点可以看到请求参数
可以看到W的定义
先分析这段代码
(s = e.body) && (w = (0,T.q6)(JSON.stringify((0,A.$Z)("?".concat(s)))
s先赋值这里就很明显了,s先赋值然后再传入concat()
接下来改写此段函数
现在找s的值,直接控制台打印
直接出结果
接下来解决响应内容加密
搜索decrypt(
此处就是响应内容的解密函数,解决思路有两种:
一是webpack,Tt的定义可以再加载器文件中找到;
二是调用crypto-js库实现解密
2024年即将到来在这里,提前给大家拜个早年,祝大伙事事顺心,平安健康!
本文旨在技术交流,切莫用作商业用途,否则后果自负;如有侵权,联系即删!!!