搜索销售,可以看到数据接口
这里三个地方全部都是密文
headers[“X-S-HEADER”]
直接搜索x-k-header
打上断点,点击分页
进去
然后点击下一步到这里
e是固定的,一个是请求的url,一个是请求的参数
然后将t进行SHA256加密再转大写,最后返回结果
看看It是什么,点击进去
为AES加密,看看aesKey是怎么来的,是从sessionStorage里面取的
const CryptoJS = require('crypto-js')
var kt = ""
, Pt = CryptoJS.enc.Utf8.parse("c558Gq0YQK2QUlMc")
, It = function (t) {
kt = CryptoJS.enc.Utf8.parse("5h4OmlZlSWqtWTHXk3dDxZQi7bVzaOI5"), // sessionStorage 里面的 "aesKey"
t = CryptoJS.enc.Utf8.parse(t);
t = CryptoJS.AES.encrypt(t, kt, {
iv: Pt,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return t.toString()
};
var headers = {};
url = "https://www.lagou.com/jobs/v2/positionAjax.json"
params = '{"first":"true","needAddtionalResult":"false","city":"全国","pn":"1","kd":"销售"}'
e = {deviceType: 1};
t = "".concat(JSON.stringify(e)).concat(url).concat(params);
t = CryptoJS.SHA256(t).toString().toUpperCase();
headers["X-S-HEADER"] = It(JSON.stringify({
originHeader: JSON.stringify(e),
code: t
}))
console.log(headers);
headers[“X-K-HEADER”]
是从sessionStorage里面取的"secretKeyValue"
请求参数data
e.body就是请求参数现在是明文
搜索e.body = 看看怎么加密的
w就在上面定义了,可以看到就是AES加密了参数
w = It(params)
headers.body = "data=".concat(encodeURIComponent(decodeURIComponent(w)));
console.log(headers);
响应数据解密
直接搜索AES.decrypt(
有两个地方,都打上断点,看在哪个位置
sessionStorage里面的参数怎么来的
前面是从sessionStorage里面取的参数,仔细看sessionStorage是有过期时间的,所以都是变的
有取值就会有赋值
Wt方法就是赋值,搜索Wt会发现是这个接口返回的
我们去找这个接口,怎么找?清除浏览器里面的sessionStorage,再刷新,就会重新生成
删掉再刷新是不是就有了
直接搜索secretKeyDecode打上断点,再删除sessionStorage,再刷新,就会再生成,也就断下来了
此时的sessionStorage是空的所以这也是空的
那就是Rt()生成的
到此就结束了