js逆向-某区块链数据获取

声明

本文仅供学习参考,切勿用于其他途径,违者后果自负!

前言

目标网站:aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1jbi9idGMvdHgtbGlzdD9saW1pdD0yMCZwYWdlTnVtPTE=
接口:aHR0cHM6Ly93d3cub2tsaW5rLmNvbS9hcGkvZXhwbG9yZXIvdjEvYnRjL3RyYW5zYWN0aW9uc05vUmVzdHJpY3Q/dD0xNjYyMTkzODI3NTg2JmxpbWl0PTIwJm9mZnNldD0w

参数分析

js逆向-某区块链数据获取_第1张图片

js逆向-某区块链数据获取_第2张图片

使用python请求,发现没有x-apiKey参数时,请求会失败。

所以需要逆向该参数。老一套,搜素、打断点。
在这里插入图片描述
console中输出。

js逆向-某区块链数据获取_第3张图片
通过getApiKey函数完成加密。

F11步入。
js逆向-某区块链数据获取_第4张图片
首先将getApiKey拿到,简单修改一下。

function getApiKey() {
    var t = (new Date).getTime();
        , e = encryptApiKey();
    return t = encryptTime(t),
        comb(e, t)
}

js逆向-某区块链数据获取_第5张图片
提示encryptApiKey没定义,找到拿下来。
js逆向-某区块链数据获取_第6张图片
没有split属性,split是js中字符串的方法。t变量看一下var t = this.API_KEY,API_KEY的值是"a2c903cc-b31e-4547-9299-b6d07b7631ab"
定义一下t变量,重新运行。
js逆向-某区块链数据获取_第7张图片

encryptTime函数拿一下。
js逆向-某区块链数据获取_第8张图片
comb函数找到拿下。
js逆向-某区块链数据获取_第9张图片
window.btoa 是浏览器中原生的base64编码,由于环境差异,node.js中没有btoa方法。
node.js使用new Buffer("字符串").toString('base64')

重新运行得到结果,至于警告不用管。
在这里插入图片描述

使用python第三方库pyexecjs调用即可。
js逆向-某区块链数据获取_第10张图片
成功得到结果!
总的来说还是比较简单,很适合练手。

你可能感兴趣的:(js逆向,javascript,爬虫)