服装网站建设方法,郑州专业做网站公司,自己做的视频可以传别的网站去吗,商城型网站怎么做优化一、数据接口分析
主页地址#xff1a;某视综
1、抓包
通过抓包可以发现数据接口是/rank/waiting/fans
2、判断是否有加密参数
请求参数是否加密#xff1f; 通过查看“载荷”模块可以发现有一个sign参数 请求头是否加密#xff1f; 无响应是否加密#xff1f; 通过查…一、数据接口分析
主页地址某视综
1、抓包
通过抓包可以发现数据接口是/rank/waiting/fans
2、判断是否有加密参数
请求参数是否加密 通过查看“载荷”模块可以发现有一个sign参数 请求头是否加密 无响应是否加密 通过查看“响应”模块可以发现数据是加密的 cookie是否加密 无
二、加密位置定位
1、sign
1看启动器
查看启动器发现里面包含异步所以无法正确找到加密位置
2搜索关键字
通过搜索关键字sign可以发现有一处sign的生成位置 在此处打上断点再次获取数据发现可以断住并且sign的密文就是在此处生成的
2、响应
因为响应加密数据一般都是json数据所以解密后会使用JSON.parse进行解密所以我们可以对JSON.parse进行hook hook代码
var my_parse JSON.parse;
JSON.parse function (params) {debuggerconsole.log(json_parse params:,params);return my_parse(params);
};运行hook代码再次获取数据发现可以断住明文数据 通过跟栈就可以找到解密位置
三、扣js代码
扣js代码时可以发现sign在加密时使用的加密方法是标准的MD5所以我们可以使用标准模块进行加密不扣js代码 同时网站解密时使用的是标准的AES算法所以我们可以使用标准的模块进行解密不扣js JavaScript源码
const CryptoJS require(crypto-js)function getSign(e) {delete e.sign;for (var t [], n Object.keys(e).sort(), r 0; r n.length; r) {var i n[r], a e[i];t.push(i),t.push(a)}t.push(iIndex);var s t.join(_), c CryptoJS.MD5(s).toString();return c
}function get_data(lastFetchTime, r) {var i CryptoJS.enc.Utf8.parse(lastFetchTime 000), a CryptoJS.enc.Utf8.parse(lastFetchTime 000), s CryptoJS.AES.decrypt(r.toString(), i, {iv: a})return s.toString(CryptoJS.enc.Utf8);
}