三、JS逆向

一、JS逆向

解释:在我们爬虫的过程中经常会遇到参数被加密的情况,这样只有先在前端搞清楚加密参数是怎么生成的才能继续我们的爬虫,而且此时我们还需要用python去执行这个加密的过程。本文主要讲怎么在浏览器调试JS,以及Python执行JS

1.浏览器调试JS

1.1 全局搜索

解释:我们想要找到被加密的内容,肯定先从参数入手,比如页面提交字段{"passwd":"5d114e4f6bdf59e7b9ca20704f1032ef54753c1969b452ba03fea1773c1a49ed6c1e72fb811bd3baccdd29e975e32d4d82f7f215a42ad4b56d561eb6eeb4c3f069936bd58a2c4dadac05fb107c2c94bfbc8efad9cb3649f6581c3d9b228ee1482e7bf39a349eed16dc0fdbb979294c5f73e2c37e489c3fde630ea35dcbe7979b"}这种一看就是加密了,此时我们打开F12开发者工具,选择选项卡网络刷新Ctrl-F搜索关键词passwd,之后就要靠自己了,点开文件依次查找,找到有用的信息,再卡断点
在这里插入图片描述

1.2 断点

解释:假设只是你找到了被加密内容调用的位置,此时需要通过加断点运行去验证自己的设想,此时如下图1,先跳去来源面板,之后我们通过图二示例就可以加断点了,图三是(刷新页面或触发该代码)程序运行到断点处时我们要选择的模式其为一行一行运行代码(这个比较常用),图四标准了我们断点运行后,我们能看到的一些局部变量的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.Python执行JS

安装:pip install pyexecjs

注意:这个库可能你电脑上有node或者其它js环境,而且执行的js代码,不能包含浏览器里面特有的一些元素,比如window,document等等(我们用python运行js一般也就是计算,遇到这些浏览器元素删除即可)

解释:这个库能够让python执行js代码,下面为简单演示

简单例子:

import execjs# compile里面写js代码
c = execjs.compile('''function hello(str){return "hello" + str;}''')
# call第一个参数是函数名,后面的参数对应函数里面的参数,比如这里hello(str)的参数str
d = c.call('hello','jack')
print(d) # hellojack

读取多个js文件:

import execjsprint(execjs.get().name)
with open('./js/test.js', 'r') as f:jscontent = f.read()with open('./js/password.js', 'r') as f:jscontent += f.read()# jscontent = jscontent + jscontent1
ctx = execjs.compile(jscontent)d = ctx.call('fuction', 'run')
print(d)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ssm企业人事管理系统的设计与实现论文

摘 要 进入信息时代以来,很多数据都需要配套软件协助处理,这样可以解决传统方式带来的管理困扰。比如耗时长,成本高,维护数据困难,数据易丢失等缺点。本次使用数据库工具MySQL和编程技术SSM开发的企业人事管理系统&am…

从 “template1“ is being accessed 报错,看PG数据库的创建过程

一、 问题背景 创建db时遇到以下报错: postgres# create database pgdb; ERROR: source database "template1" is being accessed by other users DETAIL: There is 1 other session using the database. 其实解决方法是比较简单的,查询谁…

后端对数据库查询的时间格式化

方式一: 在属性上加入注解,对日期进行格式化,如: JsonFormat(pattern "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime;方式二: 在WebMvcConfiguration 中扩展Spring MVC的消息转换器&#xf…

基于ssm旅行社管理系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅行社管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&…

RFID助力光伏硅片生产:透明溯源,质量至上

RFID助力光伏硅片生产:透明溯源,质量至上 应用背景 光伏产业作为可再生能源的主要发展方向之一,在过去几十年中取得了显著的进展。为了提高光伏产业的效率和质量。在光伏硅片生产过程中,原材料的获取、管理和追溯对于保证硅片品…

换能器信号工作原理

一、ANB板子发送一个周期,频率为40M和60M的 78V的激励脉冲信号。如下图 频率越高,周期越短。图像分辨率更高。原因如下: ①由于采用的是纵向分辨率。相邻两个点之间必须要间隔 下图的2分之兰大才能被识别。 二、当信号给到换能器后&#xf…

CollectionUtils 包

依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.4</version> </dependency>isEmpty 判断是否为空 CollectionUtils.isEmpty(null): true CollectionUtil…

邮政快递物流查询,分析筛选出提前签收件

批量查询邮政快递单号的物流信息&#xff0c;将提前签收件分析筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;并登录 步骤2&#xff1a;点击主界面左上角…

SpringBoot核心功能-temp

yml&类配置 Configuration-processor

《C++新经典设计模式》之第14章 代理模式

《C新经典设计模式》之第14章 代理模式 代理模式.cpp 代理模式.cpp #include <iostream> #include <memory> #include <vector> #include <string> #include <fstream> using namespace std;// 客户端和访问对象间引入代理对象&#xff08;间接…

nestjs守卫/全局守卫校验jwt

一、守卫 目标 部分接口需要用户登录后才可以访问&#xff0c;用户登录后可以颁发 jwt_token 给前端&#xff0c;前端在调用需要鉴权的接口&#xff0c;需要在请求头添加 jwt_token&#xff0c;后端校验通过才能继续访问&#xff0c;否则返回403无权访问 创建守卫 anth 安装…

debezium数据脱敏配置介绍及源码分析

debezium官网地址参考&#xff1a; Debezium connector for MySQL :: Debezium Documentation 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;笔芯笔芯. CDC采集数据时会有字段包含敏感字符需要做脱敏处理&#xff0c;debezium提供了4种脱敏方案&#xff0c;注意只…

mysql:不要在索引列进行数学运算和函数运算

不要在索引列进行数学运算和函数运算。这是因为数学运算和函数运算会改变索引列的值&#xff0c;导致索引失效。 如果需要进行计算或函数处理&#xff0c;最好将数据取出并在应用程序中进行处理。 下面举个对照的例子&#xff1a; 1&#xff09;看语句explain select * from …

注塑模具ERP有哪些功能?可以帮助企业解决什么难题

不同的注塑模具有不同的业务流程和生产环节&#xff0c;有些生产企业在订单、物料需求计划、车间、班组负荷评估、项目成本核算、边角料统计分析等方面还存在不少问题。 与此同时&#xff0c;也有部分注塑模具企业通过ERP软件科学制定注塑生产排产&#xff0c;智能核算注塑物料…

09 光流法实践

文章目录 09 光流法实践9.1 光流法9.2 直接法9.3 总结 09 光流法实践 光流法需要提取关键点&#xff0c;而不需要计算描述子&#xff1b;直接法直接利用像素信息&#xff0c;无需特征点。 9.1 光流法 光流法基于 灰度不变假设&#xff0c;即第一帧中的关键点的灰度与其在第二…

用print太慢了!强烈推荐这款Python Debug工具~

作为程序员&#xff0c;我们都深知调试&#xff08;Debug&#xff09;在编程过程中的重要性。然而&#xff0c;使用传统的"print"语句进行调试可能效率较低&#xff0c;今天&#xff0c;笔者将推荐一款独具一格的Python调试工具——Reloadium。Reloadium为IDE添加了热…

深入理解Spring Security授权机制原理

原创/朱季谦 在Spring Security权限框架里&#xff0c;若要对后端http接口实现权限授权控制&#xff0c;有两种实现方式。 一、一种是基于注解方法级的鉴权&#xff0c;其中&#xff0c;注解方式又有Secured和PreAuthorize两种。 Secured如&#xff1a; 1 PostMapping("…

elementui select中添加新增标签

<el-select v-model"ruleForm.eventType" :placeholder"请选择事件类型&#xff0c;可手动添加" ref"template" clearable visible-change"(v) > visibleChange(v, template)"><el-option v-for"item in eventTypeOp…

多域名SSL证书选择什么品牌比较好?

选择适合的品牌是申请多域名SSL证书的重要一步。不同品牌的SSL证书提供商在性能、安全性和客户支持等方面各有特点。本文将详细介绍选择多域名SSL证书品牌时应考虑的因素&#xff0c;并推荐几个知名的SSL证书品牌。 首先&#xff0c;我们需要考虑的是品牌的声誉和可靠性。选择一…

短地址漏洞

漏洞条件&#xff1a; 当地址的长度不足 20 byte (40个十六进制字符) 时&#xff0c;以太坊虚拟机 EVM 会进行高位补0x0转发以太币时没有对地址长度进行验证 1. input 数据 交易的 input 数据分为三个部分&#xff1a; 1&#xff09;4字节&#xff0c;是方法名的Hash值&…