01、爬虫js逆向之-七麦数据

目标网址:aHR0cHM6Ly93d3cucWltYWkuY24vcmFuay9pbmRleC9icmFuZC9hbGwvZGV2aWNlL2lwaG9uZS9jb3VudHJ5L2NuL2dlbnJlLzM2 (需要进行ba64解码即可获取到参数)

需要逆向的加密参数:analysis

1、点击数据接口,触发请求

01、爬虫js逆向之-七麦数据_第1张图片

 2、点击载荷,可以看到有一个名为analysis的签名,类似加密,经过作者验证,不同的数据接口,加密的结果不同01、爬虫js逆向之-七麦数据_第2张图片

3、进行XHR断点,查看加密过程,复制查询路径,问号前面的就是查询路径 ,可以全复制包括域名和协议,也可以只复制查询路径(域名后面到问号的地方即可)

01、爬虫js逆向之-七麦数据_第3张图片

4、点击全部,触发请求,可以看到断点在send处停止01、爬虫js逆向之-七麦数据_第4张图片

 5、点击跳过下一步函数调用按钮(标红的哪个地方),点击三次

01、爬虫js逆向之-七麦数据_第5张图片

 6、点击三次后,断点在then方法,then方法时axios响应拦截回调的方法

01、爬虫js逆向之-七麦数据_第6张图片

7、点击进入函数内部按钮(标红处) 

01、爬虫js逆向之-七麦数据_第7张图片

8、再次点击跳过函数调用按钮(点击两次),可以看到响应拦截器获取到了数据01、爬虫js逆向之-七麦数据_第8张图片

 9、再次点击点击跳过函数调用按钮(点击两次),进入到响应响应拦截器内部

01、爬虫js逆向之-七麦数据_第9张图片

 10,由此可以推断,请求拦截器(发送请求前,进行拦截修改)就在上面,我们往上翻,可以看到请求拦截器在响应拦截器的上面,找到请求拦截器有什么用呢?

它主要是用来在请求发送前对请求体,或者请求参数进行加密、解密等操作,以保证请求的安全性和正确性。此外,请求拦截器还可以对请求头、请求体、请求尾部等部分进行处理,例如设置请求头、添加后端验证码等,以增强整个请求的安全性和可靠性。

01、爬虫js逆向之-七麦数据_第10张图片

11、由此我们可以断定,analysis参数就是在请求拦截器进行加密,我们给请求拦截器加上断点调试:

01、爬虫js逆向之-七麦数据_第11张图片

 12、点击小三角按钮(跳到下一个断点处)

01、爬虫js逆向之-七麦数据_第12张图片

 13、ctrl+R  全局刷新网页,进入断点,点击两次半圆按钮(跳过下一个函数调用)01、爬虫js逆向之-七麦数据_第13张图片

 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方法内部

01、爬虫js逆向之-七麦数据_第14张图片

19、复制v方法,使用类似的方法把h方法复制出来 

01、爬虫js逆向之-七麦数据_第15张图片

20、需要注意的是:缺啥补啥,以上是大致思路

因为文章长度有限,本文章到此结束,需要抠完js代码请私信我(私信内容:七麦js)

看看node执行效果:

 

PS:有用的话记得点个赞!

你可能感兴趣的:(python爬虫,web逆向)