逆向19-极志愿

网址
image

1. 分析

搜索关键字sign
image

定位
image

悬浮Vt(t)
image

可以看出是一个md5摘要,但是是大写了,不重要,我们先验证是不是md5

Vt("123456")
'e10adc3949ba59abbe56e057f20f883e'

image
根据验证,是一个标准的md5,只是需要都大写一下,我们就可以不往后看了
接下来需要看的是这个字符串是如何构成的

image
image
根据上面两张图

t 是参数已知可以修改页码,
U 是key 写死的
然后拼接成
"{app_id=98357f659cf8fb6001cff80f7c6b85f2&diploma_id=7&page=2&page_len=20&platform=desktop&ts=1728991885766&v=210&wenli=0}&key=146fd1e66513611ac7af69f21f1d7725"

代码实现

# 页面为1 的时候 
import requests

cookies = {
    'Hm_lvt_2610e5c202b60841b30a62960fbef0ad': '1728990588',
    'Hm_lpvt_2610e5c202b60841b30a62960fbef0ad': '1728990588',
    'HMACCOUNT': '5B3A86709F76EACE',
    'PI': '44',
}

headers = {
    'accept': 'application/json, text/plain, */*',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cache-control': 'no-cache',
    # 'cookie': 'Hm_lvt_2610e5c202b60841b30a62960fbef0ad=1728990588; Hm_lpvt_2610e5c202b60841b30a62960fbef0ad=1728990588; HMACCOUNT=5B3A86709F76EACE; PI=44',
    'pragma': 'no-cache',
    'priority': 'u=1, i',
    'referer': 'https://www.jizhy.com/44?address=true&fr=nginx',
    'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}

params = {
    'page': '1',
    'page_len': '20',
    'diploma_id': '7',
    'wenli': '0',
    'app_id': '98357f659cf8fb6001cff80f7c6b85f2',
    'ts': '1728990595621',
    'platform': 'desktop',
    'v': '210',
    'sign': '932BDED217FE376ABBA8D0AFAA629592', # 需要自己生成
}

response = requests.get('https://www.jizhy.com/open/sch/rank-list', params=params, cookies=cookies, headers=headers)

print(response.text)

需要修改sign

params = {
    'page': '1',
    'page_len': '20',
    'diploma_id': '7',
    'wenli': '0',
    'app_id': '98357f659cf8fb6001cff80f7c6b85f2',
    'ts': '1728990595621',
    'platform': 'desktop',
    'v': '210',
    # 'sign': '932BDED217FE376ABBA8D0AFAA629592',
}
# 1. 排序
l = sorted(params.items(), key=lambda x: x[0])
dict_params = dict(l)
# 生成page=1&page_len=20
params_sorted = urlencode(dict_params)
# 2.拼接字符串
sign_str = "{" + params_sorted + "}" +"&key=146fd1e66513611ac7af69f21f1d7725"
# 3.生成md5
m = md5()
m.update(sign_str.encode())
sign = m.hexdigest().upper()
params['sign'] = sign

总代码

import requests
from urllib.parse import urlencode
from hashlib import md5
cookies = {
    'Hm_lvt_2610e5c202b60841b30a62960fbef0ad': '1728990588',
    'Hm_lpvt_2610e5c202b60841b30a62960fbef0ad': '1728990588',
    'HMACCOUNT': '5B3A86709F76EACE',
    'PI': '44',
}

headers = {
    'accept': 'application/json, text/plain, */*',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cache-control': 'no-cache',
    # 'cookie': 'Hm_lvt_2610e5c202b60841b30a62960fbef0ad=1728990588; Hm_lpvt_2610e5c202b60841b30a62960fbef0ad=1728990588; HMACCOUNT=5B3A86709F76EACE; PI=44',
    'pragma': 'no-cache',
    'priority': 'u=1, i',
    'referer': 'https://www.jizhy.com/44?address=true&fr=nginx',
    'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}

params = {
    'page': '1',
    'page_len': '20',
    'diploma_id': '7',
    'wenli': '0',
    'app_id': '98357f659cf8fb6001cff80f7c6b85f2',
    'ts': '1728990595621',
    'platform': 'desktop',
    'v': '210',
    # 'sign': '932BDED217FE376ABBA8D0AFAA629592',
}
# 1. 排序
l = sorted(params.items(), key=lambda x: x[0])
dict_params = dict(l)
# 生成page=1&page_len=20
params_sorted = urlencode(dict_params)
# 2.拼接字符串
sign_str = "{" + params_sorted + "}" +"&key=146fd1e66513611ac7af69f21f1d7725"
# 3.生成md5
m = md5()
m.update(sign_str.encode())
sign = m.hexdigest().upper()
params['sign'] = sign

# 发送请求
response = requests.get('https://www.jizhy.com/open/sch/rank-list', params=params, cookies=cookies, headers=headers)

print(response.text)    
posted @ 2024-10-15 19:53  流年中渲染了微笑  阅读(0)  评论(0)    收藏  举报