前言

1
aHR0cHM6Ly93d3cuNTk5LmNvbS9sZWFndWUtMzUwLw==

开始

1
查看paylod发现sign参数,经过测试发现某些url请求需带入sign才有返回值

1

1
然后我们全局搜索sign

1

1
头尾打断点

1

1
sign进去就是加密位置了

1

1
2
3
4
5
6
7
8
9
10
传参
e = '/footballDataBase/core/h5LeagueData.findH5LeagueRace.do'
t = {
"appType": "3",
"lang": "zh",
"leagueId": "34",
"season": "2025-2026",
"st": 1765385504965
}
l()改为返回MD5

1

1

1
ok了

js代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const CryptoJS = require("crypto-js");
e = '/footballDataBase/core/h5LeagueData.findH5LeagueRace.do'
t = {
"appType": "3",
"lang": "zh",
"leagueId": "34",
"season": "2025-2026",
"st": 1765385504965
}
//a6b173cd6259a3a3f8cb85b2190ca3d1 固定
//o = '/footballDataBase/core/h5LeagueData.findH5LeagueRace.doappType3langzhleagueId34season2025-2026st1765385504965a6b173cd6259a3a3f8cb85b2190ca3d1'


const l = function() {
return function(input) {
// 计算 MD5 并返回十六进制字符串
return CryptoJS.MD5(input).toString();
};
};

function Q(e, t) {
var n = {}
, o = e;
for (var r in Object.keys(t).sort().map((function (e) {
n[e] = t[e]
}
)),
n)
o = o + r + n[r];
return o += l()("wjj"), l()(o).toLowerCase() + "99"

}

console.log(Q(e, t))


Python

1
这里的js比较简单,我们python可以直接写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import time
from hashlib import md5
import requests

cookies = {

}

headers = {

}
lang = 'zh'
appType = 3
st = int(time.time()*1000)
leagueId = 36
season = "2025-2026"
count = 'a6b173cd6259a3a3f8cb85b2190ca3d1'
url = f"/footballDataBase/core/h5LeagueData.findH5LeagueRace.doappType{appType}lang{lang}leagueId{leagueId}season{season}st{st}{count}"
sign = md5(url.encode('utf8')).hexdigest()+'99'
params = {
'lang': lang,
'appType': appType,
'st': str(st),
'sign': sign,
'leagueId': str(leagueId),
'season': season,
}

response = requests.get(
'https://xxxx/footballDataBase/core/h5LeagueData.findH5LeagueRace.do',
params=params,
cookies=cookies,
headers=headers,
)
print(response.json())

1