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

【码上爬】 题十九:法外狂徒 相应数据加密还原,堆栈分析,扣代码

暗号:aHR0cHM6Ly9tYXNoYW5ncGEuY29tL3Byb2JsZW0tZGV0YWlsLzE5Lw==

题目:

先对接口进行分析,参数中并没有任何加密,只是返回的数据是加密的,一个R 一个k

推测r是数据内容,k是解密密钥,进入堆栈以后,一眼就能够看到这里使用JSON.parse()函数将浏览器数据转为了json, 如果看不到这个函数,当然也可以使用JSON.parse hook脚本:

所以接下来需要扣,DES3.decrypt的执行逻辑,这里非常简单,过程省略,几行代码就扣完了:

然后白那些python代码就能正确解析数据了:

附上python代码(headers和cookie已经删除):

import requests import execjs import json headers = {} cookies = {} url = "https://mashangpa.com/api/problem-detail/19/data/" params = { "page": "4" } response = requests.get(url, headers=headers, cookies=cookies, params=params).json() r = response['r'] k = response['k'] data = execjs.compile(open('1.js', 'r', encoding='utf-8').read()).call('result', r, k) data = json.dumps(data) print(data)

全部JS代码:

CryptoJS = require("crypto-js"); formatDate= function(v, format) { if (!v) return ""; var d = v; if (typeof v === 'string') { if (v.indexOf("/Date(") > -1) d = new Date(parseInt(v.replace("/Date(", "").replace(")/", ""), 10)); else d = new Date(Date.parse(v.replace(/-/g, "/").replace("T", " ").split(".")[0])); // 用来处理出现毫秒的情况,截取掉.xxx,否则会出错 } else if (typeof v === "number") { d = new Date(v); } var o = { "M+": d.getMonth() + 1, // month "d+": d.getDate(), // day "h+": d.getHours(), // hour "m+": d.getMinutes(), // minute "s+": d.getSeconds(), // second "q+": Math.floor((d.getMonth() + 3) / 3), // quarter "S": d.getMilliseconds()// millisecond }; format = format || "yyyy-MM-dd"; if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } } return format; } var DES3 = { iv: function() { return formatDate(new Date(), "yyyyMMdd") }, encrypt: function(b, c, a) { if (c) { return (CryptoJS.TripleDES.encrypt(b, CryptoJS.enc.Utf8.parse(c), { iv: CryptoJS.enc.Utf8.parse(a || DES3.iv()), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })).toString() } return "" }, decrypt: function(b, c, a) { if (c) { return CryptoJS.enc.Utf8.stringify(CryptoJS.TripleDES.decrypt(b, CryptoJS.enc.Utf8.parse(c), { iv: CryptoJS.enc.Utf8.parse(a || DES3.iv()), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })).toString() } return "" } }; k = "pwZ5LAbpWW2qNsOAqKuk9XWL" r = "90t5KsePIFpldULDbeJM2qDMrLUh5+qT0V347d81iFb46ZbMADrkNIXB9bA/m6Hn/33HOjzS5FnolCMT7h1jGPgrP8YL5IKWNstfUr4FJxyaa75WCUCm2iXqqqE/dDydEUbIaYsj0d/J72Zek1VaUewUQo8p63knZCWhl5mbfTAqjIsIC6hWr1tJxlvE3dLspUPkHZJuHib0BdDPZk+VaWc2WKX0CMZev9y6riB45rxqDdd446fxtwfEv4u8l0kDVSwPIkfabAIjFEwktsguwNj5QdNtpc29bQwDxe6PTdwYdOfcyxZ/9lYn2G18hjvAOAAOttjQOPPAc8aLNDDeRnv67yrzC5XbmZUokf8lI07GKXZATzp0x89VWvs7/9bfd706nY4vQEIydTYMwH32Dt+2ulgH1NSOVCgKbffg67kIsmxoenTkAkbB+tzL2hdHGmi600BbxzqUZ3AxciHz3aEOU8Xmk5bScAc415fDDa1xOzcJ7Tf3cSlltwcdQfF6ucVezlhJj3erEz5EcsPHqyu7glYncoWabFBWgv1cOrZhTSVgdWM+wlIGLhsTxgke5c2/Cqrv6UKGCOq7ZwxCXQE85mmgxqx6xx2fZHY07AT7gonsh41PMaSL0XUl9KrqBlv/ZVurbxHjvkyzyf60eiLsmOh9Fa301uwK9dy+aAceAM+xXAXmhsmrzsqgolJz/Afgs19vuhufoGxno9mQwnDV1tTjIYsS3GomTYYP4tR+d3E3Oy3UCy4su9gRCrUXdKpV1LGxh58=" function result(r,k){ console.log(DES3.decrypt(r, k)) return DES3.decrypt(r, k) }
http://www.jsqmd.com/news/874470/

相关文章:

  • 阿里校招工程岗0427真题【连连看】
  • 大模型也吃“人类话术”这一套?PNAS 新论文给测试人提了个醒
  • 朋友圈广告怎么测素材?程序员也能看懂的A/B法
  • 基于Intel Myriad X VPU的星载AI视觉系统:从算法优化到航天工程实践
  • 技术人的持续学习:保持竞争力的完整指南
  • 2026工业离心风机优质供应商推荐:高温尾气风机、高温引风机、高温循环风机、高温烟气风机、高温热风循环风机、110KW隧道风机选择指南 - 优质品牌商家
  • “这个需求能按时上线吗?”——Claude实时项目健康度仪表盘上线倒计时:仅剩最后87家企业内测资格
  • 2026四川灌胶机优质厂家推荐榜高性价比之选:全国点胶机厂家/全自动点胶机/双液灌胶机/双液点胶机/灌胶自动生产线/选择指南 - 优质品牌商家
  • Claude能写出可上线的代码吗?——20年DevOps老兵用CI/CD流水线+SonarQube+人工Code Review三重验证结果
  • 抖音视频批量下载神器:5分钟学会去水印批量下载
  • AI Agent重构旅游服务链:从咨询到售后,5个正在被颠覆的传统环节
  • 2026年近期重庆地区成人高考培训机构综合评估与选择指南 - 2026年企业推荐榜
  • 2026医药级麦芽糖靠谱供应商推荐榜:麦芽糖批发多少钱/98%以上麦芽糖/医药级麦芽糖/高纯度麦芽糖/麦芽糖公司批发/选择指南 - 优质品牌商家
  • SleeperX:革命性macOS智能睡眠管理工具,重新定义你的电源控制体验
  • 云原生数据库管理:在Kubernetes上运行数据库的完整指南
  • kubernetes的存储机制Local卷管理
  • Codex五大重磅更新:Appshots、/goal、标注模式等新功能一文看懂
  • Kubernetes多租户管理:实现资源隔离与安全的完整指南
  • 从银色子弹,到《人月神话》,再到AICoding与个人开发的思考
  • Pixel 3 刷入AOSP改良版 FartExt 脱壳机实录
  • AI新人防迷茫指南:一篇文章带你掌握机器学习入门路线
  • 2026成都塑料模板工厂怎么选:成都挡墙钢模板、成都桥梁钢模板、成都盖梁钢模板、成都箱梁钢模板、成都钢模板多少钱选择指南 - 优质品牌商家
  • BSW-DCM
  • 2026合肥工商年报代申报权威机构技术能力实测解析:合肥小规模纳税人代账、合肥工商代账、合肥工商注册代理、合肥注册公司名称核准选择指南 - 优质品牌商家
  • 2026高低温一体机控温性能深度评测报告:高低温恒温一体机、高低温恒温循环装置、高精度TCU温控系统、TCU冷热控温系统选择指南 - 优质品牌商家
  • Cursor Free VIP终极指南:三步实现AI编程助手永久免费使用
  • TinyML视觉滤波器相似性分析与量化压缩实战指南
  • 2026化工园区电缆桥架优质厂家推荐榜:不锈钢电缆桥架/喷塑桥架/大跨距电缆桥架/梯式热浸锌桥架/梯式热镀锌桥架/选择指南 - 优质品牌商家
  • Unity实战避坑指南:从零做出可玩Demo的三大核心模块
  • ViVeTool-GUI终极指南:Windows隐藏功能控制的完整解决方案