当前位置: 首页 > news >正文

【js逆向入门】图灵爬虫练习平台 第九题

地址: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 requests

subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
import execjs

base_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.text
    print(json_data)
    result = json.loads(response_data)
    for j in result['current_array']:
        sum += j

print(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]
}

 运行结果:

相关文章:

  • Linux进程控制(四)之进程程序替换
  • Spring Boot02(数据库、Redis)02---java八股
  • HTML网页代码预览器
  • 【Linux】Ubuntu 24.04 LTS 安装 Hadoop-3.4.1
  • TCP | 序列号和确认号 [逐包分析] | seq / ack 详解
  • 视频播放器(watermelon Player)vue2使用体验(教程版)
  • Android Compose 框架按钮与交互组件模块源码深度剖析(二)
  • windows清除电脑开机密码,可保留原本的系统和资料,不重装系统
  • others-rustdesk远程
  • 带你从入门到精通——自然语言处理(十. BERT)
  • LeetCode hot 100 每日一题(13)——73. 矩阵置零
  • ubuntu22.04安装搜狗输入法保姆教程~
  • 《虚拟战场的对决》
  • DeepSeek R1 本地部署指南 (3) - 更换本地部署模型 Windows/macOS 通用
  • 通俗易懂搞懂@RequestParam 和 @RequestBody
  • 【LetMeFly】牛客-美团暑期2025-20250322-前两题和第三题的思路
  • AVL-树
  • 数据结构——第五章:树与二叉树
  • 建筑安全员考试:“高效记忆” 关键词引领的学习捷径
  • LLM - 重排序(Rerank)
  • 乌副总理:乌美签署矿产协议
  • 马上评|科学谋划“十五五”,坚定不移办好自己的事
  • 事关广大农民利益,农村集体经济组织法5月1日起施行
  • 港交所与香港证监会就“中概股回流意向”已与部分相关企业进行接触
  • 商务部:将积极会同相关部门加快推进离境退税政策落实落地
  • 银川市市长信箱被指已读乱回,官方回应