逆向案例二十三——请求头参数加密,某区块链交易逆向

网址:aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2J0Yy90eC1saXN0L3BhZ2UvNAo=

抓包分析,发现请求头有X-Apikey参数加密,其他表单和返回内容没有加密。

直接搜索关键字,X-Apikey,找到疑似加密位置,注意这里断点是断不住的,但看上去也是这里进行了加密。

因此搜索关键字getApiKey,找疑似加密位置,打上断点。 

翻页后,进一步确认加密位置,貌似是comb这个函数进行了加密,进入这个函数。

打印参数,没错就是这里进行了加密。

它接收两个值,t和e分别是怎么来的呢?回归这里,t是获得时间戳再运用encryptTime()函数得到,e是encryptApikey()函数得到。

先看t,进入encryptTime()函数

再进入 encryptApikey()函数

直接复制并改写代码即可。

先搞定获得t和e的函数,最后在解决最终加密comb

获得t的代码:

a = 1111111111111;
var time_stamp = (new Date).getTime();
function encryptTime(t) {var e = (1 * t + a).toString().split(""), n = parseInt(10 * Math.random(), 10), r = parseInt(10 * Math.random(), 10), i = parseInt(10 * Math.random(), 10);return e.concat([n, r, i]).join("")};
t = encryptTime(time_stamp)console.log(t)
// 结果为 2832309119911220

获得e的代码:

var API_KEY = "a2c903cc-b31e-4547-9299-b6d07b7631ab";
function encryptApiKey() {var t = API_KEY, e = t.split(""), n = e.splice(0, 8);return t = e.concat(n).join("")
};
e = encryptApiKey()
console.log(e)//结果为 -b31e-4547-9299-b6d07b7631aba2c903cc

再回过头来看comb

o.Z是全局变量window,btoa是内置函数,转为base64格式。 

复现这段代码:

// 引入 Node.js 的 Buffer 类
const { Buffer } = require('buffer');function getApiKey(t, e) {var n = "".concat(t, "|").concat(e);// 使用 Buffer 来转换字符串为 Base64 编码var encoded = Buffer.from(n).toString('base64');return encoded;
}console.log(getApiKey(t,e))// 结果为MjgzMjMxMDY4Nzg0ODUyNXwtYjMxZS00NTQ3LTkyOTktYjZkMDdiNzYzMWFiYTJjOTAzY2M=
a = 1111111111111;
var time_stamp = (new Date).getTime();
function encryptTime(t) {var e = (1 * t + a).toString().split(""), n = parseInt(10 * Math.random(), 10), r = parseInt(10 * Math.random(), 10), i = parseInt(10 * Math.random(), 10);return e.concat([n, r, i]).join("")};
t = encryptTime(time_stamp)console.log(t)
var API_KEY = "a2c903cc-b31e-4547-9299-b6d07b7631ab";
function encryptApiKey() {var t = API_KEY, e = t.split(""), n = e.splice(0, 8);return t = e.concat(n).join("")
};
e = encryptApiKey()
console.log(e)// 引入 Node.js 的 Buffer 类
const { Buffer } = require('buffer');function getApiKey(t, e) {var n = "".concat(t, "|").concat(e);// 使用 Buffer 来转换字符串为 Base64 编码var encoded = Buffer.from(n).toString('base64');return encoded;
}console.log('最终结果为:',getApiKey(t,e))

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【SLAM评估指标介绍】—— SLAM精度的评估的几种指标介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.ATE/APE2.RPE(Relative Pose Error)3. 具体的指标介绍4. 总结 前言 SLAM(同步定位与地图构建)技术的精度评估对其可靠性和性能至关重…

p19 C语言操作符详解

算术操作符 1.除了%操作符之外&#xff0c;其他的几个操作符可以作用于整数和浮点数。 2.对于/操作符如果两个操作数都为整数&#xff0c;执行整数除法。而只要有浮点数值型的就是浮点除法。 3.%操作符的两个操作数必须为 整数。返回的是整除之后的余数。 #include<std…

老板电器营收增速放缓毛利率下滑,AI大模型“食神”能否拯救?

《港湾商业观察》施子夫 日前&#xff0c;杭州老板电器股份有限公司&#xff08;以下简称&#xff0c;老板电器&#xff1b;002508.SZ&#xff09;发布AI烹饪大模型“食神”&#xff0c;吸引外界不少眼球。在厨电领域&#xff0c;老板电器尝试将AI带进厨房。 回顾过去&#x…

IntelliJ IDEA 使用maven构建项目时一直卡在Compiling 阶段

IntelliJ IDEA 使用maven构建项目时一直卡在Compiling 阶段 1. maven log [DEBUG] incrementalBuildHelper#beforeRebuildExecution [INFO] Compiling 56 source files to D:\code\short-url\target\classes...2. 增加日志级别 通过添加 -X 参数到 Maven 命令中&#xff08;例…

Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git、gdb)

目录 Linux软件包管理器 - yum Linux下安装软件的方式 认识yum 查找软件包 安装软件 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 vim命令模式各命令汇总 vim底行模式各命令汇总 vim的简单配置 Linux编译器 - gc…

OpenAI训练数据从哪里来、与苹果合作进展如何?“ChatGPT之母”最新回应

7月9日&#xff0c;美国约翰霍普金斯大学公布了对“ChatGPT之母”、OpenAI首席技术官米拉穆拉蒂&#xff08;Mira Murati&#xff09;的采访视频。这场采访时间是6月10日&#xff0c;访谈中&#xff0c;穆拉蒂不仅与主持人讨论了OpenAI与Apple的合作伙伴关系&#xff0c;还深入…

postgresql删除用户

背景 **角色与用户**&#xff1a;在 PostgreSQL 中&#xff0c;用户和组的概念是通过“角色”来统一实现的。角色可以有登录权限&#xff08;在这种情况下&#xff0c;它们通常被称为“用户”&#xff09;&#xff0c;也可以没有&#xff08;在这种情况下&#xff0c;它们通常用…

系统架构设计师教程 第3章 信息系统基础知识-3.1 信息系统概述

系统架构设计师教程 第3章 信息系统基础知识-3.1 信息系统概述 3.1.1 信息系统的定义3.1.1.1 信息系统3.1.1.2 信息化3.1.2 信息系统的发展3.1.2.1 初始阶段3.1.2.2 传播阶段3.1.2.3 控制阶段3.1.2.4 集成阶段3.1.2.5 数据管理阶段3.1.2.6 成熟阶段3.1.3 信息系统的分类3.…

【总结】逻辑运算在Z3中运用+CTF习题

国际赛IrisCTF在前几天举办&#xff0c;遇到了一道有意思的题目&#xff0c;特来总结。 题目 附件如下&#xff1a;&#x1f4ce;babyrevjohnson.tar 解题过程 关键main函数分析如下&#xff1a; int __fastcall main(int argc, const char **argv, const char**envp){int v4…

“论企业集成平台的理解与应用”,软考高级论文,系统架构设计师论文

论文真题 企业集成平台&#xff08;Enterprise Imtcgation Plaform,EIP)是支特企业信息集成的像环境&#xff0c;其主要功能是为企业中的数据、系统和应用等多种对象的协同行提供各种公共服务及运行时的支撑环境。企业集成平台能够根据业务模型的变化快速地进行信息系统的配置…

linux环境安装mongoDB

一、安装单体mogodb 目标&#xff1a;在Linux中部署一个单机的MongoDB&#xff0c;作为生产环境下使用。 提示&#xff1a;和Windows下操作差不多。 步骤如下&#xff1a; &#xff08;1&#xff09;先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。 &#xff08;2&…

node+MySQL+Express实现账户登录,注册,重置之登录篇

nodeMySQLExpress实现账户登录 实现技术开发工具项目结构效果图app.js代码db.jsrouter下的account.jsdb下的account.jslogin.html数据库结构 实现技术 node.js,MySQL5.7(8.0以上版本会报错)&#xff0c;layui(前端框架)&#xff0c;Express notify(消息通知layui插件) 开发工…

破解反爬虫策略 /_guard/auto.js(二)实战

这次我们用上篇文章讲到的方法来真正破解一下反爬虫策略&#xff0c;这两个案例是两个不同的网站&#xff0c;一个用的是 /_guard/auto.js&#xff0c;另一个用的是/_guard/delay_jump.js。经过解析发现这两个网站用的反爬虫策略基本是一模一样&#xff0c;只不过在js混淆和生成…

高通Android 12 设置Global属性为null问题

1、最近在做app调用framework.jar需求&#xff0c;尝试在frameworks/base/packages/SettingsProvider/res/values/defaults.xml增加属性 <integer name"def_xxxxx">1</integer> 2、在frameworks\base\packages\SettingsProvider\src\com\android\provide…

2024年“数据要素×”大赛宁夏分赛正式启动

数据赋能 乘数而上 分赛聚焦“数据赋能 乘数而上”主题&#xff0c;对标国家“数据要素”大赛要求&#xff0c;结合宁夏特色优势产业、重点行业发展&#xff0c;设立工业制造、现代农业、金融服务、医疗健康、现代教育、水利应用6个行业赛道和1个通用赛道&#xff0c;围绕22个…

linux进程——概念理解与PCB

前言&#xff1a;本篇讲解Linux进程概念相关内容。 操作系统被称为计算机世界的哲学&#xff0c; 可以见得操作系统的知识并不好理解。 对于这篇进程概念的讲解&#xff0c; 博主认为&#xff0c; 如果没有一些前置知识的话&#xff0c;里面的有些概念并不好理解。 但是如果学习…

STM32测测速---编码电机读取速度的计算

1、首先先了解一下计算的公式 速度计算&#xff1a; 轮胎每转一圈的脉冲数取决于编码器的分辨率&#xff0c;可由下面公式进行计算&#xff1a; PPR是电机的线数 以GA25-370电机为例。 图片来源&#xff1a;第四节&#xff1a;STM32定时器&#xff08;4.JGA25-370霍尔编码器…

navicat15已连接忘记密码

1.导出链接 2.使用文本打开 connections.ncx UserName"root" PasswordXXXX 3.复制加密密码&#xff0c;在线解密 代码在线运行 - 在线工具 php解密代码 <?php class NavicatPassword {protected $version 0;protected $aesKey libcckeylibcckey;protected…

vue3 快速入门 (二) : 实现第一个Vue网页,并在手机上浏览

1. 最简单的一个VUE网页 首先&#xff0c;我们可以看我的这篇文章 : vue3 快速入门 (一) : 环境配置与搭建 完成环境搭建。 接着就可以来实现我们的第一个Vue网页了。 本文环境 Vue版本 : 3.4.29Node.js版本 : v20.15.0系统 : Windows11 64位IDE : VsCode 1.1 基础模板 vu…

leetcode热题100-技巧-只出现一次的数字

题源 136.只出现一次的数字 题目描述 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间…