0


jd试用h5st参数探索

通过抓包找到jd试用的网址:aHR0cHM6Ly9wcm9kZXYubS5qZC5jb20vbWFsbC9hY3RpdmUvRzdzUTkydldTQnNUSHprNGU5NTNxVUdXUUo0L2luZGV4Lmh0bWw
F12开发者模式,搜索

h5st

,最后找到

main.6d****82.js

文件
在这里插入图片描述

分别给

c.h5st = y

w.h5st = y

附近多打几个断点,然后滑动页面加载下一页

在这里插入图片描述

可以看出y就是h5st,而

y = this[o(81, 0, 25) + t(0, 920, 0, 1148)](f, s, g);

挨个分析
this中包含了

_appId

_fingerprint

_token

_timestamp

_version

等信息,都是h5st中用到的 //_fingerprint=JSON.parse(localStorage.WQ_vk1_8f1e3).v
在这里插入图片描述

8个参数,现在就剩下5和8了,再往上看,找到了调用参数

(f, s, g)

f为第五个参数,g为第八个
在这里插入图片描述

继续往上看,

g=v[t(0, 1269, 0, 1201)][t(0, 1121, 0, 1110)]()

可以得出参数8的加密方式、key和iv等信息
在这里插入图片描述

而iv和key又可由hex解码解出
ivkey0102030405060708wm0!@w_s#ll1flo(
然后我们解出参数8的明文

在这里插入图片描述

协议头和fp等参数组成,所以判断参数8几乎为固定的

{"sua":"Linux; Android 11; Pixel 5","pp":{},"fp":"4975599160384842"}

接下来继续往上翻,看参数5

f = Jd.HmacSHA256(l, n)[o(93, 0, -78)](Jd[t(0, 812, 0, 820)][t(0, 1335, 0, 1533)])

可以看出f是又HmacSHA256得来的,我们断点

Jd.HmacSHA256

,F8继续执行脚本,并随便点一个类目
在这里插入图片描述

可以看出t是加密文本,n(token)是key,使用HMAC SHA 256加密

//我们翻堆栈能看到一个test
在这里插入图片描述


补充:test函数的获取

补充:感谢@幽溪左畔 的提醒,原来这个test函数,是通过ajax请求拿到的,所以说每次清空cookie之后的算法都是不一样的。
(接口:*.*.com/request_algo?g_ty=ajax,有多种加密,每次访问可能都不同)
通过抓包又发现一个加密参数

expandParams
                    data: JSON[p(0, 964, 945)]({
                        version: s,
                        fp: i,
                        appId: a,
                        timestamp: Date[f(775, 0, 753)](),
                        platform: r[p(0, 1003, 965)],
                        expandParams: c
                    }),

往上翻,拿到c

c = e[o(1191, 0, 1170)];        //也就是e.env

[attachimg]2542164[/attachimg]

通过分析,我们拿到key和iv,是和刚才的一模一样的信息
ivkey0102030405060708wm0!@w-s#ll1flo(
[attachimg]2542172[/attachimg]
明文中,包括了很多信息…cookie、ua、页面宽高信息、url、Origin、appid、fp等信息。


boby参数

我们继续执行脚本,发现有又执行了一次

Jd.HmacSHA256

,此次得到的结果就是第五个参数key就是刚才HMAC SHA 256加密的结果,那么t(加密文本)中有一个boby是64位的未知数,我们看看boby是如何来的
我们搜

body:

,发现一个可疑的json

c = {
    functionId: t.functionId,
    clientVersion: i,
    appid: s,
    client: u,
    body: Br.a.sha256_digest(JSON.stringify(a)).toString()
},

在这里插入图片描述

我们下断点,F8继续执行脚本,并随便点一个类目
在这里插入图片描述

能看出body的密文其实的post的时候的body的参数进行了SHA256加密


h5st参数大致流程

functionid等,是根据api的functionid变化的
在这里插入图片描述

[/md]

标签: json 前端 javascript

本文转载自: https://blog.csdn.net/a952252664/article/details/126154552
版权归原作者 闷骚小贱男 所有, 如有侵权,请联系我们删除。

“jd试用h5st参数探索”的评论:

还没有评论