某聘__zp_stoken__参数逆向还原
声明
本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
aHR0cHM6Ly93d3cuemhpcGluLmNvbS93ZWIvZ2Vlay9qb2I/cXVlcnk9cHl0aG9uJmNpdHk9MTAxMjgwNjAw
逆向还原过程
接口请求中携带的cookie中有关键性参数__zp_stoken__,该参数每次调用都会重新生成。
ctrl+shift+f全局收索__zp_stoken__,找到赋值处,猜测r就是token的值
网上找到r赋值的地方,下断点,再次请求确认r即为token
这里有两个参数,t和n,全局搜索t的值,发现接口有返回,在响应的cookie里
如果是初次请求,则在响应中
接下来找加密函数
进到js文件
调试发现加密用到的方法都在这个文件中,整个文件复制下来,把缺的环境都补上,最后的js代码结构如下:
测试代码,正常执行,每次执行都会生成不同的__zp_stoken__
jsdom安装运行问题
安装:镜像源安装,否则超时失败
npm install jsdom --registry=https://registry.npmmirror.com/
报错1:逻辑或赋值运算符 ||=
,是 ES2021 引入的一个特性。 JavaScript 环境不支持 ES2021 或更高版本
解决:使用三元运算符
报错2:performance
对象是浏览器环境下的特性,在Node.js环境中,默认情况下是没有这个全局对象,使用jsdom时如果代码中直接引用了performance
就会报错
解决:手动添加performance
此文完。
参考:https://github.com/mike2367/Boss_scrapy/tree/main