主页地址:某某观察
因为响应加密数据一般都是json数据加密,所以解密后会使用JSON.parse
进行解密,所以我们可以对JSON.parse
进行hook。
hook代码段:
var my_parse = JSON.parse;
JSON.parse = function (params) {
debugger
console.log("json_parse params:",params);
return my_parse(params);
};
运行hook代码,再次点击翻页,发现有明文参数传入
往下执行,可以发现是在响应拦截器中对数据进行的解密
在响应拦截器中可以发现,该网站解密是用的标准AES模块进行的解密
所以我们只需要跟代码找到密钥就可以使用标准AES模块进行解密了
源代码:
var CryptoJS = require('crypto-js')
function tripleAesDecrypt(srcs) {
var aesKey = 'QV1f3nHn2qm7i3xrj3Y9K9imDdGTjTu9'
var key = CryptoJS.enc.Utf8.parse(aesKey),
decrypted = CryptoJS.AES.decrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}