新闻详情

新闻详情

首页 / 资讯中心 / 详情

码上爬第四题:js逆向入门

发布时间:2026/9/29 11:47:29来源:尧图网络
码上爬第四题:js逆向入门
需求获取20页数据求总和。开始我们先抓包查看请求涉及到哪些加密参数。可以看到请求涉及到sign值与时间戳我们主要处理sign时间戳到后面可以通过python第三方库获取即可。我们尝试一下搜索是否能搜到sign值。OK我们成功搜索到sign值点进去看看是否是我们想要的sign加密参数。在window.md5位置打上断点点击下一页触发断点调式。OK明显可以看到是通过window.md5加密一个字符串后复制给window.token。sign值又来自于window.token。我们可以通过加密字符串”1”来验证是否是标准的md5加密。测试之后可以判断是标准的md5加密。如果不知道的话可以上网上进行MD5加密测试。明文tuling timestamp pageNumber tuling 时间戳 页数思路已经理清了直接调用python第三方库hashlib.md5进行加密即可运行结果如下python版本:import time import hashlib import requests lis [] for pageNumber in range(1,21): print(f正在请求{pageNumber}页) #获取时间戳 timestamp int(time.time()*1000) #pageNumber 1 #进行明文拼接 params tuling str(timestamp) str(pageNumber) #通过MD5算法库进行加密 Sign hashlib.md5(params.encode()).hexdigest() print(密文值Sign:,Sign) print(时间戳ts:,timestamp) url fhttps://www.mashangpa.com/api/problem-detail/4/data/?page{pageNumber}sign{Sign}_ts{timestamp} headers { accept: */*, accept-language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6, cache-control: no-cache, pragma: no-cache, priority: u1, i, referer: https://www.mashangpa.com/problem-detail/4/, sec-ch-ua: \Microsoft Edge\;v\153\, \Not_A Brand\;v\8\, \Chromium\;v\153\, 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/153.0.0.0 Safari/537.36 Edg/153.0.0.0, } cookies { 这里粘贴你的cookie } #sessionid: tbbwz6ee0xy2awmfgy4oq412kvzdibps, response requests.get( url, headersheaders, cookiescookies ) print(response.status_code) print(response.text) resp response.json()[current_array] lis.append(sum(resp)) print(总和:,sum(lis))js版本import requests import execjs with open(r粘贴你的js文件路径,r,encodingutf-8) as f: ctx execjs.compile(f.read()) lis [] for pageNumber in range(1,21): print(f正在请求{pageNumber}页) res ctx.call(loadPage,pageNumber) print(密文值:,res) url fhttps://www.mashangpa.com/api/problem-detail/4/data/?page{pageNumber}sign{res[sign]}_ts{res[_ts]} headers { accept: */*, accept-language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6, cache-control: no-cache, pragma: no-cache, priority: u1, i, referer: https://www.mashangpa.com/problem-detail/4/, sec-ch-ua: \Microsoft Edge\;v\153\, \Not_A Brand\;v\8\, \Chromium\;v\153\, 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/153.0.0.0 Safari/537.36 Edg/153.0.0.0, cookie:粘贴你的cookie值 } response requests.get( url, headersheaders, ) print(response.status_code) print(response.text) resp response.json()[current_array] lis.append(sum(resp)) print(总和:,sum(lis))js源码window this, function (n) { function r(n, r) { var t (65535 n) (65535 r); return (n 16) (r 16) (t 16) 16 | 65535 t } function t(n, t, o, u, e, c) { return r(function (n, r) { return n e | n 32 - e }(r(r(t, n), r(u, c))), o) } function o(n, r, o, u, e, c, f) { return t(r o | ~r u, n, r, e, c, f) } function u(n, r, o, u, e, c, f) { return t(r u | o ~u, n, r, e, c, f) } function e(n, r, o, u, e, c, f) { return t(r ^ o ^ u, n, r, e, c, f) } function c(n, r, o, u, e, c, f) { return t(o ^ (r | ~u), n, r, e, c, f) } function f(n, t) { var f, i, a, h, g; n[t 5] | 128 t % 32, n[14 (t 64 9 4)] t; var l 1732584193, d -271733879, v -1732584194, C 271733878; for (f 0; f n.length; f 16) d c(d c(d c(d c(d e(d e(d e(d e(d u(d u(d u(d u(d o(d o(d o(d o(a d, v o(h v, C o(g C, l o(i l, d, v, C, n[f], 7, -680876936), d, v, n[f 1], 12, -389564586), l, d, n[f 2], 17, 606105819), C, l, n[f 3], 22, -1044525330), v o(v, C o(C, l o(l, d, v, C, n[f 4], 7, -176418897), d, v, n[f 5], 12, 1200080426), l, d, n[f 6], 17, -1473231341), C, l, n[f 7], 22, -45705983), v o(v, C o(C, l o(l, d, v, C, n[f 8], 7, 1770035416), d, v, n[f 9], 12, -1958414417), l, d, n[f 10], 17, -42063), C, l, n[f 11], 22, -1990404162), v o(v, C o(C, l o(l, d, v, C, n[f 12], 7, 1804603682), d, v, n[f 13], 12, -40341101), l, d, n[f 14], 17, -1502002290), C, l, n[f 15], 22, 1236535329), v u(v, C u(C, l u(l, d, v, C, n[f 1], 5, -165796510), d, v, n[f 6], 9, -1069501632), l, d, n[f 11], 14, 643717713), C, l, n[f], 20, -373897302), v u(v, C u(C, l u(l, d, v, C, n[f 5], 5, -701558691), d, v, n[f 10], 9, 38016083), l, d, n[f 15], 14, -660478335), C, l, n[f 4], 20, -405537848), v u(v, C u(C, l u(l, d, v, C, n[f 9], 5, 568446438), d, v, n[f 14], 9, -1019803690), l, d, n[f 3], 14, -187363961), C, l, n[f 8], 20, 1163531501), v u(v, C u(C, l u(l, d, v, C, n[f 13], 5, -1444681467), d, v, n[f 2], 9, -51403784), l, d, n[f 7], 14, 1735328473), C, l, n[f 12], 20, -1926607734), v e(v, C e(C, l e(l, d, v, C, n[f 5], 4, -378558), d, v, n[f 8], 11, -2022574463), l, d, n[f 11], 16, 1839030562), C, l, n[f 14], 23, -35309556), v e(v, C e(C, l e(l, d, v, C, n[f 1], 4, -1530992060), d, v, n[f 4], 11, 1272893353), l, d, n[f 7], 16, -155497632), C, l, n[f 10], 23, -1094730640), v e(v, C e(C, l e(l, d, v, C, n[f 13], 4, 681279174), d, v, n[f], 11, -358537222), l, d, n[f 3], 16, -722521979), C, l, n[f 6], 23, 76029189), v e(v, C e(C, l e(l, d, v, C, n[f 9], 4, -640364487), d, v, n[f 12], 11, -421815835), l, d, n[f 15], 16, 530742520), C, l, n[f 2], 23, -995338651), v c(v, C c(C, l c(l, d, v, C, n[f], 6, -198630844), d, v, n[f 7], 10, 1126891415), l, d, n[f 14], 15, -1416354905), C, l, n[f 5], 21, -57434055), v c(v, C c(C, l c(l, d, v, C, n[f 12], 6, 1700485571), d, v, n[f 3], 10, -1894986606), l, d, n[f 10], 15, -1051523), C, l, n[f 1], 21, -2054922799), v c(v, C c(C, l c(l, d, v, C, n[f 8], 6, 1873313359), d, v, n[f 15], 10, -30611744), l, d, n[f 6], 15, -1560198380), C, l, n[f 13], 21, 1309151649), v c(v, C c(C, l c(l, d, v, C, n[f 4], 6, -145523070), d, v, n[f 11], 10, -1120210379), l, d, n[f 2], 15, 718787259), C, l, n[f 9], 21, -343485551), l r(l, i), d r(d, a), v r(v, h), C r(C, g); return [l, d, v, C] } function i(n) { var r, t , o 32 * n.length; for (r 0; r o; r 8) t String.fromCharCode(n[r 5] r % 32 255); return t } function a(n) { var r, t []; for (t[(n.length 2) - 1] void 0, r 0; r t.length; r 1) t[r] 0; var o 8 * n.length; for (r 0; r o; r 8) t[r 5] | (255 n.charCodeAt(r / 8)) r % 32; return t } function h(n) { var r, t, o 0123456789abcdef, u ; for (t 0; t n.length; t 1) r n.charCodeAt(t), u o.charAt(r 4 15) o.charAt(15 r); return u } function g(n) { return unescape(encodeURIComponent(n)) } function l(n) { return function (n) { return i(f(a(n), 8 * n.length)) }(g(n)) } function d(n, r) { return function (n, r) { var t, o, u a(n), e [], c []; for (e[15] c[15] void 0, 16 u.length (u f(u, 8 * n.length)), t 0; t 16; t 1) e[t] 909522486 ^ u[t], c[t] 1549556828 ^ u[t]; return o f(e.concat(a(r)), 512 8 * r.length), i(f(c.concat(o), 640)) }(g(n), g(r)) } window.md5 function (n, r, t) { return r ? t ? d(r, n) : function (n, r) { return h(d(n, r)) }(r, n) : t ? l(n) : function (n) { return h(l(n)) }(n) } }(); function loadPage(pageNumber) { const timestamp new Date().getTime() window.token window.md5(tuling timestamp pageNumber) const params { page: pageNumber, sign: window.token, _ts: timestamp, }; return params //console.log(params) } //传入页码 //loadPage(1)
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

工业相机SDK开发实战:图像格式解析、转换链路与避坑指南 2026/9/29 12:49:16

工业相机SDK开发实战:图像格式解析、转换链路与避坑指南

1. 工业相机SDK开发里,图像格式为什么是第一道坎刚接触工业相机SDK开发的人,十有八九会在图像格式上栽跟头。你打开相机,调好曝光和增益,满心欢喜地抓一帧图,结果拿到的数据要么是黑白雪花,要么颜色诡异得像…

阅读更多 →
HCIE-Cloud V2.0备考避坑指南:从容器到OpenStack排错 2026/9/29 12:49:09

HCIE-Cloud V2.0备考避坑指南:从容器到OpenStack排错

简介:HCIE-Cloud培训教材V2.0是华为针对云计算专家认证推出的官方培训资料,面向认证考生及云计算运维、架构设计人员。内容围绕FusionSphere虚拟化、FusionCloud私有云、FusionAccess桌面云三大方案展开,详细介绍各方案的特点、功能与架构&am…

阅读更多 →
YOLOv8从环境搭建到RK3588部署:训练调参与损失曲线分析全流程 2026/9/29 12:49:09

YOLOv8从环境搭建到RK3588部署:训练调参与损失曲线分析全流程

简介:《yolov8详细教程.docx》是一份面向目标检测初学者和课程实训学生的完整YOLOv8入门教程,聚焦从零搭建YOLOv8环境、完成图片标注与模型训练全流程。文档先梳理YOLOv8相比YOLOv5的骨干网络、Anchor-Free检测头、C2f模块及多尺度融合等创新点&#xff…

阅读更多 →
星盘接口开发文档:太阳弧接口指南 2026/9/29 12:49:03

星盘接口开发文档:太阳弧接口指南

星盘接口开发文档:太阳弧接口指南 1. 引言 本文档详细介绍了占星系统的太阳弧接口的使用方法,包括请求参数详解、响应数据结构、错误处理机制以及最佳实践建议。 2. 接口基础信息 接口名称: 太阳弧 请求方式: POSTContent-Type: application/x-www-form-…

阅读更多 →
用Dify工作流搭建AI应用自动复盘系统,让静默故障无处遁形 2026/9/29 12:48:50

用Dify工作流搭建AI应用自动复盘系统,让静默故障无处遁形

说句实话,我做AI应用开发这两年,最头疼的从来不是“怎么让模型回答得更聪明”,而是“怎么发现它已经在犯蠢了”。模型在测试集上表现再好,一上线面对真实用户,各种奇奇怪怪的输入就会把它打回原形。前阵子我搭了个叫hi…

阅读更多 →
Multisim 14.3 安装教程:从下载到报错排查与仿真优化 2026/9/29 12:48:36

Multisim 14.3 安装教程:从下载到报错排查与仿真优化

做电子设计这几年,我装过不下十次Multisim,从14.0到14.3都折腾过。很多同学习惯在QQ群或者网盘里找multisim免费安装包,结果要么下载下来是一堆捆绑软件,要么安装到一半就报错,要么装完打开发现缺少一堆组件。实际上&a…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉