【JS逆向八】逆向某企查网站的headers参数,并模拟生成 仅供学习
逆向日期:2024.02.07
使用工具:Node.js
加密方法:未知 / 标准库Hmac-SHA512
文章全程已做去敏处理!!! 【需要做的可联系我】
可使用AES进行解密处理(直接解密即可):AES加解密工具
1、打开某某网站(请使用文章开头的AES在线工具解密):9SDQx3Uw77OSeFWtKSiXXDHx9b//OfXXY2MHNnJDhlv1R6PYdyjvOcJqxYhX8JsC
2、需要先登录、先登录、、打开链接网站,打开控制台网络面板进行查看,把页面翻到底部,然后点击第二页,网络面板的请求标头进行查看,这两个参数都是会变的,下面看我怎么去查找

3、ctrl+shift+F全局搜索大法,搜索【headers】这个参数,因为他是请求头,经历了八十一难,终于找到了,主要参数是:
【e.data】的参数就是你翻页的值,你翻第几页,这个参数就会变。
【t】的值为url链接,这个比如我们请求的url链接为[https://xxx.xxxxx.com/api/search/xxxxttttt],则这个【t】的值就需要改为[/api/search/xxxxttttt], 服务器的后端会进行复原检测的

【老一】
4、接下来我们分开来做,先把【老一】参数方法模拟下来,直接开扣【i】,扣的过程我发现里面过程很简单,而且还用到了标准库Hmac-SHA512,把【t】进行加密后作为key使用,,然后将【t】和【n】相加就是参数,然后使用Hmac-SHA512进行加密,在从中间截取一段就是我们【老一】的最终值了

5、我们把代码放到本地运行一下,和控制台对比,哎呦,成功了,一毛一样

【老二】
6、开始获取【老二】的参数,也就是【l】的值,当我开始扣的时候,发现里面其实都一样,和【老一】的套路都一样,里面也是有一个标准库Hmac-SHA512,只不过多了一个固定参数,然后我把代码都打包了,先展示给你们看看,然后做一个对比


【附上源码】
为防止二次编辑或对该网站的原创保护,只能将源代码进行混淆展示。
npm install crypto-js --save // 安装本地包
// 安装 crypto-js 包
// npm install crypto-js --save
const CryptoJS = require('crypto-js')
window = global;var _0x538e=['substr','pathString','codes','default','length','toLowerCase'];var _0xd307=function(_0x538e6b,_0xd3073b){_0x538e6b=_0x538e6b-0x0;var _0x358605=_0x538e[_0x538e6b];return _0x358605;};function HmacSHA512(_0x4166a4,_0x1c1f1d){return CryptoJS['HmacSHA512'](_0x4166a4,_0x1c1f1d)['toString']();}function a_default2(){var _0x120c19={'default':{'n':0x14,'codes':{'0':'W','1':'l','2':'k','3':'B','4':'Q','5':'g','6':'f','7':'i','8':'i','9':'r','10':'v','11':'6','12':'A','13':'K','14':'N','15':'k','16':'4','17':'L','18':'1','19':'8'}}};for(var _0x2c465e=(arguments[_0xd307('0x4')]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:'/')['toLowerCase'](),_0x4f136e=_0x2c465e+_0x2c465e,_0x47f9e0='',_0x51bde2=0x0;_0x51bde2<_0x4f136e['length'];++_0x51bde2){var _0x124798=_0x4f136e[_0x51bde2]['charCodeAt']()%_0x120c19[_0xd307('0x3')]['n'];_0x47f9e0+=_0x120c19[_0xd307('0x3')][_0xd307('0x2')][_0x124798];}return _0x47f9e0;}function a_default(){var _0x3eb2b0=arguments[_0xd307('0x4')]>0x1&&void 0x0!==arguments[0x1]?arguments[0x1]:{},_0x43f27e=(arguments[_0xd307('0x4')]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:'/')['toLowerCase']();return HmacSHA512(_0x43f27e+_0x3eb2b0,a_default2(_0x43f27e))[_0xd307('0x5')]()[_0xd307('0x0')](0x8,0x14);}function r_default(){var _0x50bcf7=arguments[_0xd307('0x4')]>0x1&&void 0x0!==arguments[0x1]?arguments[0x1]:{},_0x4519a1=arguments[_0xd307('0x4')]>0x2&&void 0x0!==arguments[0x2]?arguments[0x2]:'',_0x4844e0=(arguments['length']>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:'/')[_0xd307('0x5')](),_0x49125c=_0x50bcf7;return HmacSHA512(_0x4844e0+_0xd307('0x1')+_0x49125c+_0x4519a1,a_default2(_0x4844e0));}t = '/api/search/searchmulti'
// pageindex为第几页
// pagesize为一页有多少数据
e_data = '{"searchkey":"要搜索的内容","pageindex":1,"pagesize":20}'
function i_l(t,e_data){var i = a_default(t,e_data);var l = r_default(t, e_data, '253979babcf5f12706b132a032769fe7')return {'i':i,'l':l}
}
console.log(i_l(t,e_data))
相关文章:
【JS逆向八】逆向某企查网站的headers参数,并模拟生成 仅供学习
逆向日期:2024.02.07 使用工具:Node.js 加密方法:未知 / 标准库Hmac-SHA512 文章全程已做去敏处理!!! 【需要做的可联系我】 可使用AES进行解密处理(直接解密即可):AES加…...
Springboot+vue的社区智慧养老监护管理平台设计与实现(有报告),Javaee项目,springboot vue前后端分离项目
演示视频: Springbootvue的社区智慧养老监护管理平台设计与实现(有报告),Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的社区智慧养老监护管理平台设…...
STM32学习笔记——定时器
目录 一、定时器功能概述 1、基本定时器(TIM6&TIM7) 工作原理 时序 2、通用计时器(TIM2&TIM3&TIM4&TIM5) 时钟源 外部时钟源模式1&2 外部时钟源模式2 外部时钟源模式1 定时器的主模式输出 输入捕获…...
Android编程权威指南(第四版)- 第 4 章 UI状态的保存与恢复
文章目录 代码:依赖MainActivityQuizViewModelQuestion知识点代码: 大体是一样的,修改了一些 依赖 implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")MainActivity package com.example.geoquizimport androidx.appcompat.app.AppCompatActivi…...
代理模式
如有错误或有补充,以及任何改进的意见,请留下您的高见 定义 代理模式是一种设计模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式是一种结构型模式,它可以在不修改源码的情况下增强方法,在方法前后增…...
C++三剑客之std::any(一) : 使用
相关系列文章 C三剑客之std::any(一) : 使用 C之std::tuple(一) : 使用精讲(全) C三剑客之std::variant(一) : 使用 C三剑客之std::variant(二):深入剖析 目录 1.概述 2.构建方式 2.1.构造函数 2.2.std::make_any 2.3.operator分配新值 3.访问值…...
2024年:用OKR管理你的生活
在科技高速发展的时代,越来越多的企业和团队开始采用OKR(Objectives and Key Results)管理方法来设定目标并跟踪进度。你是否想过,将OKR理念引入个人生活,以更有效地实现人生目标?本文将探讨如何在2024年运…...
Lua迭代器以及各种源函数的实现
范型for 范型for的格式如下所示: for <var-list> in <exp-list> do<body> end var-list指变量名列表,可以为多个,exp-list指表达式列表,通常情况下只有一个值。可以更具体地写为另一种形式: fo…...
e5 服务器具备哪些性能特点?
随着云计算和大数据技术的不断发展,服务器作为数据中心的核心设备,其性能特点也日益受到关注。其中,E5服务器作为当前主流的服务器类型之一,具备许多优秀的性能特点。本文将详细介绍E5服务器的性能特点,帮助读者更好地…...
《C++ Primer Plus》《2、开始学习C++》
文章目录 0 前言:1 进入C1.1 main()函数1.2 C注释1.3 预处理器和iostream1.4 头文件名1.5 名称空间1.6 使用cout进行C输出1.7 C源代码的格式化 2 C语句2.1 声明语句和变量2.2 赋值语句2.3 cout语句 3 其他C语句3.1使用cin3.2 使用cout进行拼接3.3 类简介 4 函数4.1 …...
Backtrader 文档学习- Sizers
Backtrader 文档学习- Sizers 1.概述 智能仓位 Strategy提供了交易方法,即:buy,sell和close。看一下buy的定义: def buy(self, dataNone,sizeNone, priceNone, plimitNone,exectypeNone, validNone, tradeid0, **kwargs):注意&…...
基于YOLOv8算法的照片角度分类项目实践
目录 一、任务概述二、YOLOv8算法简介2.1 算法改进2.2 算法特点2.3 网络结构2.4 性能比较 三、工程实践3.1 安装算法框架库ultralytics3.2 库存照片预处理3.2.1 提取所有图片3.2.2 去除冗余的相同照片3.2.3 去除无车辆照片3.2.4 随机提取指定数量的图片 3.3 照片朝向分类3.3.1 …...
go语言进阶篇——面向对象(一)
什么是面向对象 在我们设计代码时,比如写一个算法题或者写一个问题结局办法时,我们常常会使用面向过程的方式来书写代码,面向过程主要指的是以解决问题为中心,按照一步步具体的步骤来编写代码或者调用函数,他在问题规…...
C#,栅栏油漆算法(Painting Fence Algorithm)的源代码
1 刷油漆问题 给定一个有n根柱子和k种颜色的围栏,找出油漆围栏的方法,使最多两个相邻的柱子具有相同的颜色。因为答案可以是大的,所以返回10^97的模。 计算结果: 2 栅栏油漆算法的源程序 using System; namespace Legalsoft.Tr…...
java_error_in_pycharm.hprof文件是什么?能删除吗?
java_error_in_pycharm.hprof文件是什么?能删除吗? 🌵文章目录🌵 🌳引言🌳🌳hprof格式文件介绍🌳🌳java_error_in_pycharm.hprof文件什么情况下能删除🌳&…...
LeetCode 491 递增序列
给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明: 给定数组的长度不会超过15。 数组中的整数范围是 [-…...
考研/计算机二级数据结构刷题之顺序表
目录 第一题 顺序表的初始化,销毁,头插,尾插,头删,尾删,指定位置插入,指定删除以及打印 第二题 移除元素 题目链接: OJ链接 题目详解:移除元素 第三题:删…...
Git 代码协同的使用方法 for Azure DevOps
1. 登陆Azure 步骤1.1. VS Code,登陆Azure Cloud的Ubuntu环境,如下: 重点: 这里的Azure Cloud的用户名是YourAzureUserName,口令是YourAzurePassword 步骤1.2. 登陆Azure Cloud的Ubuntu环境后,配置Git账户信息&…...
数据库学习笔记2024/2/5
2. SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准 2.1 SQL通用语法 在学习具体的SQL语句之前,先来了解一下SQL语言的通用语法。 1). SQL语句可以单行或多行书写&…...
PSM-Net根据Stereo图像生成depth图像
一、新建文件夹 在KITTI数据集下新建depth_0目录 二、激活anaconda环境 conda activate pt14py37三、修改submission.py文件 3.1 KITTI数据集路径 parser.add_argument(--datapath, default/home/njust/KITTI_DataSet/00/, helpselect model)3.2 深度图像输出路径 save…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
