【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…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
