知乎加密参数x-zse-96详解
一、通过接口请求,发现4个参数为必要参数
1.cookie
2.x-zse-93 固定加密版本,
3.x-zse-96 代解密参数1
4.x-zst-81 代解密参数2(复制固定的也可以一直用)
二、破解x-zse-96
1.在js代码寻找对一参数名,通过寻找,能找到x-zse-96
2.解析思路
通过断点逆向推理可以看出,
1.x-zse-96由 2.0_ + y 组成
2. y取的是m函数里的signature
3.signature由u()(f()(s))
4.发现f()(s)和md5加密参数很相似,我们尝试复制s参数去md5网站加密对于,发现是两者一致
s参数查看是由 f'{x_zse_93}+{path}+{d_c0}+{x_zse_81}'这几个参数拼接而成
d_c0为cookie里的参数
5.复制u()函数js代码,通过 excejs去执行即可得出y
3.负责的js需要由dom环境
1.在复制的代码也前添加
const jsdom = require("jsdom"); const { JSDOM } = jsdom; const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`); window = dom.window; document = window.document; XMLHttpRequest = window.XMLHttpRequest;
2.运行安装jsdom需要node.js环境,在官网下载node即可(可百度如何安装)
3.npm install jsdom,则可以在node_modules看到jsdom包