某阿系影城网爬虫JS逆向

news/2024/7/19 11:44:29 标签: javascript, 爬虫, python

本次逆向目标网站如下,使用base64解码获得
aHR0cHM6Ly9oNWxhcmsueXVla2V5dW4uY29tL2ZpbG0vaW5kZXguaHRtbD93YXBpZD1GWVlDX0g1X1BST0RfU19NUFMmc3RhbXA9MTcxMDExNzc5NDM0NiZzcG09YTJvZjYubG9jYXRpb25faW5kZXhfcGFnZS4wLjA=

打开网站,发起请求后,发现请求参数没有加密,请求头中疑似存在两个加密参数bx-ua和bx-umidtoken,经过重放请求后,发现bx-umidtoken没有验证,那么本次加密的目标就是bx-ua参数,通过全局搜索后,定位在如下位置
在这里插入图片描述
这里传递进来的e就是加密参数了,其中e是有umidtoken和ua组合而来,这里可以搜索ua进行查询,也可以搜索umidtoken进行查询,因为这两个参数在一块,再次搜索定位后,定位到如下位置
在这里插入图片描述
这里发现,e是有i和o两个promise返回的结果产生,我们往上查找代码,然后发现这两个参数在上面均由函数生成,如下图
在这里插入图片描述
因为umidtoken不需要解决,这里我们重点查看n.getUA这个函数,跟栈进去查看,发现是另一个js文件生成
在这里插入图片描述
把这个加密js放到本地后,执行会报一堆环境错误,window、document、canvas、screen、navigator等等,这里需要补齐一些环境,大致如下图
在这里插入图片描述
补齐后,就能生成对应的ua参数
在这里插入图片描述
长度是800多个,实际网页中有1000多个,但是经过测试,这个长度也能够用,就不纠结网页长度的原因了,封装成python脚本后,成功返回响应数据
在这里插入图片描述


http://www.niftyadmin.cn/n/5423291.html

相关文章

Linux操作系统-06-进程与服务管理

使用ps命令查看进程。包括过滤进程信息 使用systemctl命令管理和运行Linux服务 进程(Process):操作系统正在运行的应用程序。任意一个进程,都会消耗CPU和内存资源, 服务(Service)&#xff1a…

鲜花销售小程序|基于微信小程序的鲜花销售系统设计与实现(源码+数据库+文档)

鲜花销售小程序目录 目录 基于微信小程序的鲜花销售系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1前台功能模块 2、后台功能模块 1、管理员功能模块 四、数据库设计 1、实体ER图 2、具体的表设计如下所示: 五、核心代码 六、论文参考 七、…

为什么Java不支持多继承

1、典型回答 在 Java 语言中,不支持多继承的主要原因是为了简化语言设计和避免潜在的问题(如菱形继承)以及避免多重继承的层次膨胀,同时又因为在实际工作中,确实很少用到多继承,所以在Java语言中&#xff0…

day06、07-MySQL

文章目录 一、MySQL概述1.1 安装1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 二. 数据库设计-DDL2.1 项目开发流程2.2 数据库操作2.2.1 查询数据库2.2.2 创建数据库2.2.3 使用数据库2.2.4 删除数据库 2.3 图形化工具2.3.1 介绍2.3.2 安装2.3.3 使用2.2.3.1 连接数据库…

刷题第3天(中等题):LeetCode707--设计链表--练习单链表和双链表的增删查操作

LeetCode707: 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表…

HTML视频笔记

学习arm开发板,涉及到网页HTML PHP什么的,简单看个视频学习下 HTML|超简单HTML入门教程 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element ​​​​​​vscode需要的libc6等需要的版本高​​​​​​ 为了安装vscode,将…

Deep Learning for Detecting Robotic Grasps

链接:1301.3592.pdf (arxiv.org) 这个用于从单一RGB-D视图进行机器人抓取检测的算法包括以下步骤: 图像获取: 机器人获取包含待抓取对象的场景的RGB-D图像。 抓取评分: 使用小型深度网络对RGB-D图像中的潜在抓取进行评分。抓取以在…

【Pytorch】进阶学习:实现矩阵乘法---torch.mul() 、 torch.mm() 和torch.matmul()的区别

【Pytorch】进阶学习:实现矩阵乘法—torch.mul() 、 torch.mm() 和torch.matmul()的区别 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零…