【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))

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

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

相关文章

突破编程_C++_面试(基础知识(8))

面试题20&#xff1a;什么内存对齐 以结构体为例来说明内存对齐&#xff1a; 结构体对齐是编译器在内存中布局结构体成员时遵循的一种规则。对齐的目的是提高内存访问效率&#xff0c;减少因内存访问不对齐而引发的性能下降或硬件异常。 在大多数系统中&#xff0c;数据对齐通…

pydantic了解学习

文章目录 什么是pydantic安装pydanticpydantic主要特性数据验证数据解析和序列化简化数据处理 什么是pydantic Pydantic是一个Python库&#xff0c;用于数据解析和验证。通过定义类模型并设定类型注解&#xff0c;Pydantic可以确保我们在处理数据时&#xff0c;数据的格式和类…

Java学习15-- 面向对象学习3. 对象的创建分析【★】

&#xff08;本章看不懂多读几遍&#xff0c;弄懂后再往下章看&#xff09; 面向对象学习3. 对象的创建分析 Java Memory Structure: 如上图所示&#xff1a; 主要分为Stack和Heap Memory 其中Stack主要放method包括main 程序从main开始所以main最先进入Stack&#xff0c;等…

【Langchain+Streamlit】打造一个旅游问答AI

利用LangchainStreamlit打造一个交互简单的旅游问答AI机器人&#xff0c;如果你有openai账号,可以按照如下的网址直接体验&#xff0c;如果你没有的话可以站内私信博主要一下临时key体验一下&#xff1a; 产品使用传送门—— http://101.33.225.241:8501/ 这里有演示效果和代码…

蓝桥杯(Web大学组)2023省赛真题3:收集帛书碎片

需要实现&#xff1a; 1.将二维数组转为一维数组&#xff1b; 2.数组去重 一、将二维数组转为一维数组&#xff1a; 二、数组去重&#xff1a; function collectPuzzle(...puzzles) {// console.log(puzzles);// console.log(...puzzles);// TODO:在这里写入具体的实现逻辑/…

论文阅读-Examining Zero-Shot Vulnerability Repair with Large Language Models

1.本文主旨&#xff1a; 这篇论文探讨了使用大型语言模型&#xff08;LLM&#xff09;进行零射击漏洞修复的方法。人类开发人员编写的代码可能存在网络安全漏洞&#xff0c;新兴的智能代码补全工具是否能帮助修复这些漏洞呢&#xff1f;在本文中&#xff0c;作者研究了大型语言…

最新话费充值系统源码,附带系统安装教程

搭建教程 亲测环境&#xff1a;PHP7.0MySQL5.6 PHP扩展安装&#xff1a;sg11 数据库配置文件路径&#xff1a;/config/database.php 伪静态设置为thinkphp 后台地址&#xff1a;/admin 账号密码&#xff1a;admin/123456

ASP.NET Core MVC 控制查询数据表后在视图显示

如果是手动写代码&#xff0c;不用VS自带的一些控件&#xff0c;那比较简单的方式就是把查询的数据集&#xff0c;逐条赋给对象模型&#xff0c;再加到List&#xff0c;最后在控制加到 ViewBag&#xff0c;视图循环显示ViewBag变量 控制器代码 List<Users> list new Li…

node.js后端+小程序前端+mongoDB(增删改查)

前言 今天我对比了以下node.js的express与python的fastAPI&#xff0c;我决定我还是出一期关于node.jsmangoDB小程序的小案例吧。 不是python的fastAPI不好用&#xff0c;因为fastAPI是python较新的技术&#xff0c;我不敢果断发出教学文章&#xff08;这件事情还是留着给pyt…

[机器学习]K-means——聚类算法

一.K-means算法概念 二.代码实现 # 0. 引入依赖 import numpy as np import matplotlib.pyplot as plt # 画图依赖 from sklearn.datasets import make_blobs # 从sklearn中直接生成聚类数据# 1. 数据加载 # 生成&#xff08;n_samples&#xff1a;样本点&#xff0c;centers&…

PostgreSQL不停机迁移数据

通常涉及到数据迁移&#xff0c;常规操作都是停服务更新。不停机迁移数据是相对比较高级的操作。 不停机数据迁移在本质上&#xff0c;可以视作由三个操作组成&#xff1a; 复制&#xff1a;将目标表从源库逻辑复制到宿库。改读&#xff1a;将应用读取路径由源库迁移到宿库上…

从零开始手写mmo游戏从框架到爆炸(零)—— 导航

从今天开始我们尝试从零开始写一个mmo的游戏。主要技术还是netty。参考了网上很多的大神的框架&#xff0c;本来希望基于ioGame或者vert.x等来直接写功能的&#xff0c;觉得从零开始更有意义&#xff0c;而且咱们也不需要太NB的底层功能&#xff0c;够用就行。 下面是导航&…

HarmonyOS开发工具DevEco Studio安装以及汉化

HUAWEI DevEco Studio 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE)&#xff0c; 助力高效开发。 应用内共享HSP开发 支持在Stage模型和模块化编译方式下开发HSP&#xff0c;以及共享HSP给应用内其他模块使用;支持运行态共享HSP。Code Linter代码检查 支持ArkTS/T…

幻兽帕鲁转移/迁移游戏存档之后,无法迁移角色存档,进入游戏需要重新建角色问题(已解决),服务器到服务器之间的存档转移

很多朋友在迁移幻兽帕鲁游戏存档到服务器的时候&#xff0c;可能会遇到一个问题&#xff0c;就是迁移完成后&#xff0c;进入到游戏会发现又需要从头开始&#xff0c;重新新建角色。 其实这个问题也很好解决&#xff0c;因为Palworld服务端有两种&#xff0c;一种是有APPID&…

SpringFramework实战指南(六)

SpringFramework实战指南(六) 4.4 基于 配置类 方式管理 Bean4.4.1 完全注解开发理解4.4.2 实验一:配置类和扫描注解4.4.3 实验二:@Bean定义组件4.4.4 实验三:高级特性:@Bean注解细节4.4.5 实验四:高级特性:@Import扩展4.4.6 实验五:基于注解+配置类方式整合三层架构组…

vue项目集成booststrap

1.首先安装bootstrap npm install bootstrap 我安装的是4.3的版本 2.在main.js中引用bootstrap import bootstrap/dist/css/bootstrap.css import bootstrap/dist/css/bootstrap.min.css import bootstrap/dist/js/bootstrap.js import bootstrap/dist/js/bootstrap.min.…

(Python)字典列表数据本地存储工具

前言 一个简单的实现简便 "列表字典" 数据存储本地。 适合不会SQL但又想实现数据存储本地的同学。 操作使用都非常简单。 文件只做了简单的加密处理&#xff0c;如果需要复杂加密的同学可以修改加密函数。 温馨提示&#xff1a; 1.使用前&#xff0c;在项目目录…

CentOS7如何安装宝塔面板并实现固定公网地址远程访问

文章目录 一、使用官网一键安装命令安装宝塔二、简单配置宝塔&#xff0c;内网穿透三、使用固定公网地址访问宝塔 宝塔面板作为建站运维工具&#xff0c;适合新手&#xff0c;简单好用。当我们在家里/公司搭建了宝塔&#xff0c;没有公网IP&#xff0c;但是想要在外也可以访问内…

使用Spring AOP实现对外接口的日志自动打印

文章目录 一、引言二、使用AOP实现日志打印三、logback单独打印api调用信息 一、引言 相信我们都有过这样的经历&#xff0c;在提供第三方对外接口时&#xff0c;为了防止推诿扯皮&#xff0c;我们会在自己接口被调用时日志打印一下第三方的调用参数&#xff0c;再在业务逻辑结…

数据结构第十一天(栈)

目录 前言 概述 源码&#xff1a; 主函数&#xff1a; 运行结果&#xff1a; ​编辑 前言 今天简单的实现了栈&#xff0c;主要还是指针操作&#xff0c;soeasy! 友友们如果想存储其他内容&#xff0c;只需修改结构体中的内容即可。 哈哈&#xff0c;要是感觉不错&…