网站建设科研申报书,郑州专业做淘宝网站建设,成都百度推广优化创意,网站运营与推广计划书怎么做网址#xff1a;aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2J0Yy90eC1saXN0L3BhZ2UvNAo
抓包分析#xff0c;发现请求头有X-Apikey参数加密#xff0c;其他表单和返回内容没有加密。 直接搜索关键字#xff0c;X-Apikey#xff0c;找到疑似加密位置#xff0c;注意这里…网址aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2J0Yy90eC1saXN0L3BhZ2UvNAo
抓包分析发现请求头有X-Apikey参数加密其他表单和返回内容没有加密。 直接搜索关键字X-Apikey找到疑似加密位置注意这里断点是断不住的但看上去也是这里进行了加密。 因此搜索关键字getApiKey找疑似加密位置打上断点。 翻页后进一步确认加密位置貌似是comb这个函数进行了加密进入这个函数。 打印参数没错就是这里进行了加密。 它接收两个值,t和e分别是怎么来的呢回归这里t是获得时间戳再运用encryptTime()函数得到e是encryptApikey()函数得到。 先看t,进入encryptTime()函数 再进入 encryptApikey()函数 直接复制并改写代码即可。
先搞定获得t和e的函数最后在解决最终加密comb
获得t的代码
a 1111111111111;
var time_stamp (new Date).getTime();
function encryptTime(t) {var e (1 * t a).toString().split(), n parseInt(10 * Math.random(), 10), r parseInt(10 * Math.random(), 10), i parseInt(10 * Math.random(), 10);return e.concat([n, r, i]).join()};
t encryptTime(time_stamp)console.log(t)
// 结果为 2832309119911220获得e的代码
var API_KEY a2c903cc-b31e-4547-9299-b6d07b7631ab;
function encryptApiKey() {var t API_KEY, e t.split(), n e.splice(0, 8);return t e.concat(n).join()
};
e encryptApiKey()
console.log(e)//结果为 -b31e-4547-9299-b6d07b7631aba2c903cc再回过头来看comb o.Z是全局变量window,btoa是内置函数转为base64格式。 复现这段代码
// 引入 Node.js 的 Buffer 类
const { Buffer } require(buffer);function getApiKey(t, e) {var n .concat(t, |).concat(e);// 使用 Buffer 来转换字符串为 Base64 编码var encoded Buffer.from(n).toString(base64);return encoded;
}console.log(getApiKey(t,e))// 结果为MjgzMjMxMDY4Nzg0ODUyNXwtYjMxZS00NTQ3LTkyOTktYjZkMDdiNzYzMWFiYTJjOTAzY2Ma 1111111111111;
var time_stamp (new Date).getTime();
function encryptTime(t) {var e (1 * t a).toString().split(), n parseInt(10 * Math.random(), 10), r parseInt(10 * Math.random(), 10), i parseInt(10 * Math.random(), 10);return e.concat([n, r, i]).join()};
t encryptTime(time_stamp)console.log(t)
var API_KEY a2c903cc-b31e-4547-9299-b6d07b7631ab;
function encryptApiKey() {var t API_KEY, e t.split(), n e.splice(0, 8);return t e.concat(n).join()
};
e encryptApiKey()
console.log(e)// 引入 Node.js 的 Buffer 类
const { Buffer } require(buffer);function getApiKey(t, e) {var n .concat(t, |).concat(e);// 使用 Buffer 来转换字符串为 Base64 编码var encoded Buffer.from(n).toString(base64);return encoded;
}console.log(最终结果为:,getApiKey(t,e))