您现在的位置是:首页 > 技术人生 > 后端技术后端技术

js解密之获取中高风险地区接口(二)

高晓波2023-02-13【后端技术】人已围观

简介一、承上启下接上一篇《js解密之获取中高风险地区接口(一)》,我们已经把请求参数都搞定了,接下来利用postman进行测试,发现响应码401返回结果为空。一定是哪里弄错了,再看看浏览器

一、承上启下

接上一篇《js解密之获取中高风险地区接口(一)》,我们已经把请求参数都搞定了,接下来利用postman进行测试,发现响应码401返回结果为空。

一定是哪里弄错了,再看看浏览器中正常发送的请求:


 

原来在请求头中还蕴涵着一些加密签名的校验参数。

二、请求头参数分析

首先我们看一下请求头参数:

x-wif-nonce: QkjjtiLM2dCratiA
x-wif-paasid: smt-application
x-wif-signature: F8DCB678CCCF28969934D08B1C0633CC8E986420B34A7F39F7FF0E3357594CB9
x-wif-timestamp: 1659061020
同样的,我们在调试模式的请求返回结果中搜索关键字:x-wif-signature:


可以看到,依旧还是在risk.js这个js中,我们在此前格式化过的risk.js中搜索x-wif-signature:
 
        function p(e) {
            if (!e.commonHeaders)
                return e;
            var t = c.value,
                n = CryptoJS.SHA256(t + "fTN2pfuisxTavbTuYVSsNJHetwq5bJvCQkjjtiLM2dCratiA" + t).toString(CryptoJS.enc.Hex).toUpperCase();
            return Object.assign(e.headers, {
                "x-wif-nonce": "QkjjtiLM2dCratiA",
                "x-wif-paasid": "smt-application",
                "x-wif-signature": n,
                "x-wif-timestamp": t
            }),
                e
        }

找到了p函数,p函数中包含了很多我们想要的信息:参数x-wif-nonce的值QkjjtiLM2dCratiA,参数x-wif-paasid的值smt-application,参数x-wif-timestamp的值为时间戳(上一篇已分析过)。
参数x-wif-signature的值为变量n,而变量n又是熟悉的sha256,只不过请求头的签名是sha256(t+xxx+t),其中的xxx是一串随机字符串,本次xxx的值为:fTN2pfuisxTavbTuYVSsNJHetwq5bJvCQkjjtiLM2dCratiA

至此,我们把请求头的参数也全部分析完毕,剩下的就是写代码按规则生成参数调用接口了。

Tags:js解密

很赞哦! ()

文章评论