京东试用h5st参数
# 网址通过抓包找到jd试用的网址:aHR0cHM6Ly9wcm9kZXYubS5qZC5jb20vbWFsbC9hY3RpdmUvRzdzUTkydldTQnNUSHprNGU5NTNxVUdXUUo0L2luZGV4Lmh0bWw
# 开始操作
F12开发者模式,搜索 `h5st`,最后找到`main.6d****82.js`文件
分别给 `c.h5st = y` 和 `w.h5st = y` 附近多打几个断点,然后滑动页面加载下一页
可以看出y就是h5st,而 `y = this(f, s, g);`
挨个分析
this中包含了 `_appId` 和 `_fingerprint` 和`_token`和`_timestamp`和`_version`等信息,都是h5st中用到的
[在电脑浏览器登录京东试用的时候,cookie中sfstoken就是token]
8个参数,现在就剩下5和8了,再往上看,找到了调用参数`(f, s, g)`
f为第五个参数,g为第八个
继续往上看, `g=v()`
可以得出参数8的加密方式、key和iv等信息
而iv和key又可由hex解码解出
| iv | key |
| ------------------ | ------------------ |
| 0102030405060708 | wm0!@w_s#ll1flo( |
然后我们解出参数8的明文
协议头和fp等参数组成,所以判断参数8几乎为固定的
```
{
"sua": "Linux; Android 11; Pixel 5",
"pp": {},
"fp": "4975599160384842"
}
```
接下来继续往上翻,看参数5 `f = Jd.HmacSHA256(l, n)(Jd)`
可以看出f是又HmacSHA256得来的,我们断点`Jd.HmacSHA256`,F8继续执行脚本,并随便点一个类目
可以看出t是加密文本,n(token)是key,使用HMAC SHA 256加密
{我们翻堆栈能看到一个test}
我们继续执行脚本,发现有又执行了一次`Jd.HmacSHA256`,此次得到的结果就是第五个参数key就是刚才HMAC SHA 256加密的结果,那么t(加密文本)中有一个boby是64位的未知数,我们看看boby是如何来的
# boby参数
我们搜 `body:` ,发现一个可疑的json,和刚才的t参数拼接后是一样的
```
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参数大致流程
页:
[1]