地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvOS8=
f12進入了debugger,右擊選擇一律不在此處暫停, 點擊繼續執行
查看請求信息
查看載荷,2個加密參數,m和tt
查看啟動器,打上斷點
進來
往下滑就能找到對應參數生成的位置
這個e數組就是執行順序
f的求解?
接著 case 6
接著 case 7
接著 case 2
———————————————————————————————————————————
載荷中m的求解:
進到這個c函數,看返回結果
代碼:
// 引入 CryptoJS
const CryptoJS = require("crypto-js");var f = (new Date)["getTime"]();
console.log(f);var payload_m = CryptoJS.HmacSHA1("9527" + f, "xxxooo").toString();console.log(payload_m);
結果:
———————————————————————————————————————————
載荷中 tt 的求解:
代碼:
tt = btoa(f)
console.log(tt)
———————————————————————————————————————————
py代碼:
import json
import subprocess
from functools import partial
import time
import requestssubprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
import execjsbase_url = 'https://stu.tulingpyton.cn/api/problem-detail/9/data/'sum = 0
for pageNumber in range(1, 21):with open("tuling_9.js") as f:jscode = f.read()js = execjs.compile(jscode)result = js.call("run")m = result[0]tt = result[1]print(m, tt)headers = {"authority": "stu.tulingpyton.cn","method": "POST","path": "/api/problem-detail/9/data/","scheme": "https","accept": "*/*","accept-encoding": "gzip, deflate, br, zstd","accept-language": "zh-CN,zh;q=0.9","content-length": "85","content-type": "application/json","cookie": "Hm_lvt_b5d072258d61ab3cd6a9d485aac7f183=1742636212; HMACCOUNT=B88D03FCE9EB9B74; sessionid=340601jxoe4omfo21a6g88elw8m3xz9c; Hm_lpvt_b5d072258d61ab3cd6a9d485aac7f183=1742636343","origin": "https://stu.tulingpyton.cn","priority": "u=1, i","referer": "https://stu.tulingpyton.cn/problem-detail/9/","sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"","sec-ch-ua-mobile": "?0","sec-ch-ua-platform": "\"Windows\"","sec-fetch-dest": "empty","sec-fetch-mode": "cors","sec-fetch-site": "same-origin","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","x-requested-with": "XMLHttpRequest",}# 請求載荷payload = {"m": m,"page": pageNumber,"tt":tt}res = requests.post(base_url, headers=headers, json=payload)json_data = res.json()response_data = res.textprint(json_data)result = json.loads(response_data)for j in result['current_array']:sum += jprint(sum)
js代碼:
// 引入 CryptoJS
const CryptoJS = require("crypto-js");function run() {f = (new Date)["getTime"]();m = CryptoJS.HmacSHA1("9527" + f, "xxxooo").toString();tt = btoa(f)return [m,tt]
}
?運行結果: