python爬虫混肴DES案例:某影视大数据平台

声明:

该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关

一、找出需要加密的参数
  1. js运行atob('aHR0cHM6Ly93d3cuZW5kYXRhLmNvbS5jbi9Cb3hPZmZpY2UvQk8vTW9udGgvb25lTW9udGguaHRtbA==') 拿到网址,F12打开调试工具,点击票房日期下拉筛选,找到 API/GetData.ashx 请求
  2. 分别切换headers、payload、preview,会发现 header、payload中没有经过特别处理的字段,preview 响应结果加密
  3. 鼠标右击该请求找到Copy>Copy as cUrl(cmd),打开网站:https://spidertools.cn/#/curl2Request,把拷贝好的curl转成python代码
  4. 新建yien.py文件,把代码复制到该文件内
二、定位参数加密位置
  1. 由于加密的header是动态生成的,显然使用关键字搜索无法定位到,直接切换到sources,添加XHR拦截 API/GetData.ashx
  2. 点击票房日期下拉筛选重新发送请求,看栈列表发现栈很少,可以先点点看,点到 PostApi 会发现请求的接口,且返回的结果在 sucess 回调函数中已经处理,打个断点
  3. 重新发送请求,点击跳过断点调试,直到看见请求的接口,会发现 e 是加密后的响应结果,经过 webInstace.shell 处理,鼠标悬浮到 webInstace.shell 点击蓝色部分,定位到该函数
  4. 进到该文件后,在if 和 else 中都打上断点,然后重新发送请求,点击跳过断点,找到刚才大的断点会发现进入了 else 断点,鼠标悬浮 _0x2246('0x25d', 'E&PI') 上会发现是 DES 算法
  5. 新建 yien.js,把整个代码复制到 yien.js
  6. 验证结果,把 e 输出到控制台,复制打印结果,修改 js 运行后,会发现报错
  7. 在控制台分别输出 !navigator 、!navigator_0x2246('0x26d', '0I#o') 会发现都是 false,找到 yien.js 的 2238 行修改js,再运行 js 发现解密成功
三、验证结果
  1. 修改 yien.py,运行该文件,会发现 UnicodeDecodeError 错误
  2. 解决 UnicodeDecodeError 错误,再次运行 yien.py 发现响应结果解密成功

相关推荐
卷无止境5 小时前
RAGFlow 项目全景报告:从文档解析引擎到 Agent 原生数据库
后端·python
灿飞屋6 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
benchmark_cc6 小时前
单只股票五档盘口接入个人研究仓库:QuantDash 读取、校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
青少儿编程课堂7 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛
灿飞屋10 小时前
Kotlin与Java虚拟机四:函数
java·python·kotlin·安卓·android jetpack
一晌小贪欢11 小时前
Python基础:第 09 篇 · while 循环:重复直到不满足
开发语言·c++·python·数据可视化·面向对象·python办公
一条大祥脚12 小时前
CuTe 与 CuTe DSL:从 C++ 模板元编程到 Python DSL 的 GPU 编程演进
开发语言·c++·python·cutlass·cute·cute dsl
10年前端老司机12 小时前
Milvus 8种检索能力实践
数据库·python·agent
Sakura_j_h_13 小时前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc
大草原的小灰灰13 小时前
LLM应用的标准开发框架LangChain(八)- 中间件
python·中间件·langchain