JS逆向-sm2、sm4加密某医保局

2023-05-16

前言

该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~

需求

目标网址:aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL25hdGlvbmFsSGFsbFN0LyMvc2VhcmNoL21lZGljYWw/Y29kZT05MDAwMCZmbGFnPWZhbHNlJmdiRmxhZz10cnVl

步骤

1、抓包分析
2、定位及还原加密算法

正文

一、抓包

在这里插入图片描述
在这里插入图片描述
加密参数
请求头:
x-tif-nonce、x-tif-signature、X-Tingyun:
请求体:
appCode、encData(sm4)、signData(sm2)
以及返回的数据也是加密的,形式类似请求参数

二、定位及还原

在这里插入图片描述
通过搜索关键字,可以定位到请求头在此处生成

x-tif-signature = r(f)
f = s + h + s
s = Math.ceil((new Date).getTime() / 1e3)
h = Object(i.a)()

r(f)返回的数据是64位,经过测试是标准的SHA256算法
Math.ceil()>四舍五入;s返回的是一个时间戳并去掉后三位
h是由一个方法i生成的
那么x-tif-signature、x-tif-nonce就可以推导出来了,用JS还原一下

var CryptoJS = require('crypto-js')
function sha256Encrypt(t) {
    return CryptoJS.SHA256(t).toString()
}
function get_nonce() {
    var e, t, n, i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r = "0123456789";
    return e = o(6, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"),
    t = o(1, i),
    n = o(1, r),
    t + n + e;
    function o(e, t) {
        e = e || 32;
        for (var n = "", i = 0; i < e; i++)
            n += t.charAt(Math.ceil(1e3 * Math.random()) % t.length);
        return n
    }
}

var h = get_nonce()
console.log('nonce:'+ h)

function get_signature() {
    var s = Math.ceil((new Date).getTime() / 1e3)
    var f = s + h + s
    return sha256Encrypt(f)
}
signature = get_signature()
console.log('signature:'+signature)

经过测试,可知appCode为固定值:“T98HPCGN5ZVVQBS8LZQNOAEXVI9GYHKQ”

在这里插入图片描述
可见signData由以上方法生成,那么我们一步一步还原

n = m(t.data)

t.data = 这里是引用

后面就是把webpack导包,引用方法就可以了。代码较多,这里就不展开写了

最后

欢迎联系作者交流更多

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS逆向-sm2、sm4加密某医保局 的相关文章

  • 面向对象的编程思想写单片机程序——(3)学习笔记 之 程序分层、数据产生流程

    系列文章目录 面向对象的编程思想写单片机程序 xff08 1 xff09 学习笔记 之 程序设计 面向对象的编程思想写单片机程序 xff08 2 xff09 学习笔记 之 怎么抽象出结构体 面向对象的编程思想写单片机程序 xff08 3 x
  • 嵌入式学习 QT 篇——(1)在 Windows 上搭建 QT 开发环境

    文章目录 前言在 Windows 上搭建 QT 开发环境 Qt Creator 前言 Qt 是基于 C 43 43 的跨平台图形界面应用程序开发框架 Qt 程序可以自己直接编写 xff0c 使用集成开发环境 Qt Creator 在 Win
  • FreeRTOS学习笔记——(2)官方源码、源码结构、编程规范

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录一 官方源码1 源码2 FreeRTOS 目录结构 二 数据类型及编程规范1 数据类型2 变量名3 函数名3 宏的名 一 官方源码 1 源码 链接 xff1a ht
  • FreeRTOS学习笔记——(4)同步与互斥之队列

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录同步与互斥队列一 队列函数1 创建2 复位3 删除4 写队列5 读队列6 查询7 覆盖 偷看 二 队列的应用1 串口发送字符串2 分辨数据源 xff08 多个数据来
  • FreeRTOS学习笔记—— 系列文章目录

    FreeRTOS学习笔记 系列文章目录 FreeRTOS学习笔记 xff08 1 xff09 ARM架构调用标准AAPCS 现场的保存与恢复 FreeRTOS学习笔记 xff08 2 xff09 官方源码 源码结构 编程规范 FreeRTO
  • FreeRTOS学习笔记——(5)信号量

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录信号量一 信号量函数1 创建2 删除3 give take 函数 二 信号量的应用1 二进制信号量 xff08 防止数据丢失 xff09 2 计数型信号量 信号量
  • shell脚本自动登录远程主机执行脚本或命令

    usr bin expect set WORK PATH 34 root 34 set hostname 34 10 239 227 224 34 spawn ssh root 64 hostname expect 34 yes no 34
  • 获得鼠标离开消息。

    要知道什么时候一个鼠标指针进入一个窗口或是在它上面移动是非常简单的 因为窗口会接收到WM MOUSEMOVE消息 在Windows NT 4 0中初次亮相的 TrackMouseEvent函数使得确定什么时刻鼠标指针离开窗口或者是静止悬于窗
  • Spring中AOP的使用以及举例

    1 AOP的简介 1 1 什么是AOP AOP Aspect Oriented Programming 面向切面编程 xff0c 一种编程范式 xff0c 指导开发者如何组织程序结构 OOP Object Oriented Programm
  • openstack创建云主机实例错误

    求大佬们帮忙看看是什么问题
  • RTOS任务调度过程(上下文切换)

    RTOS任务调度过程 xff08 上下文切换 xff09 解析 xff1a RTOS任务调度的机制是基于内核异常机制的 xff0c 即每产生一次调度就会产生一次内核异常 xff0c 那么 xff0c 要了解RTOS的任务调度机制需要先明白内
  • runtime-core.esm-bundler.js:40 [Vue warn]: Vue received a Component which was made a reactive object

    vue3 Vue warn 96 96 96 runtime core esm bundler js 40 Vue warn Vue received a Component which was made a reactive object
  • Prometheus监控k8s

    文章目录 前情提要监控k8s节点监控coreDns服务监控Ingress nginx监控k8s state metrics修改Prometheus的configmap并重载PrometheusGrafana展示监控的数据节点基础信息监控co
  • JDK更换IDEA如何修改

    一 打开idea设置 1 点击file里面的settings 二 取消默认javac编译 2 然后点开 Build Execution Deployment找到里面的compiler xff0c 再点开Java compiler 取消勾选
  • VUE父子传值报错问题

    Avoid mutating a prop directly since the value will be overwritten whenever the parent component re renders Instead use
  • Postman简介及接口测试流程(小菜鸟攻略)

    目录 前言 一 常见接口 二 前端和后端 三 什么是接口测试 四 接口组成 1 接口说明 2 调用url 3 请求方法 xff08 get post xff09 4 请求参数 参数类型 请求参数说明 5 返回参数说明 五 为什么要做接口测试
  • k8s:Pod 基础概念

    目录 一 资源限制 xff0c 二 Pod 的两种使用方式 三 Pod 资源共享 四 底层容器Pause 4 1 Pause共享资源 4 1 1 网络 4 1 2 存储 4 1 3 小结 4 2 Pause主要功能 4 3 Pod 与 Pa
  • Docker-dockerfile

    目录 一 dockerfile概念 二 Docker镜像创建 1 基于现有镜像创建 2 基于本地模板创建 3 基于dockerfile创建 3 1 dockerfile结构 3 2 构建镜像命令 三 dockerfile操作指令 1 ENT
  • windows/linux 下iozone参数详解

    iozone是一个文件系统的benchmark工具 xff0c 可以测试不同的操作系统中文件系统的读写性能 可以测试 Read write re read re write read backwards read strided fread
  • Windows认证Kerberos访问HDFS

    一 Windows认证Kerberos访问HDFS 1 官网下载地址 xff1a http web mit edu kerberos dist 2 安装步骤 默认安装地址 C Program Files MIT Kerberos C Pro

随机推荐

  • 2022(招聘季)linux面试高频题

    大家好 xff0c 今天给大家分享一下2022最新最全的linux面试高频题 xff0c 希望你们喜欢 linux运维工程师在面试的时候经常会被问到各种问题 xff0c 接下来我也会根据自己的经验将面试题整理下来供大家参考 有不同见解的欢迎
  • 自动化测试工具——Selenium详解

    目录 前言 Selenium的几个特点 seleniun组成部分 selenium RC selenium IDE selenium Grid selenium webDriver 那么selenium RC 与webdriver 主要有什
  • Linux命令新建目录mytest并且设置权限

    1 在 usr目录中新建一个目录目录名称 xff1a mytest 并在mytest目录中新建文件net txt 设置文件的属 性为文件属主 u 增加执行权限 xff0c 文件属主同组用户 g 增加写入权限 xff0c 其他用户 o 删除读
  • ubuntu18.04安装realsenseD435驱动

    1 下载编译librealsense master 1 1 更新内核 运行代码 uname r 如果 gt 61 4 4 0 50的版本则ok xff0c 否则需要升级内核 1 2 更新cmake xff08 需要3 6以上版本 xff09
  • 用realsensed435录制数据集并跑orb-slam2

    1 lt 利用ros记录话题 xff0c 获得bag文件 gt 首先launch相机节点 roslaunch realsense2 camera rs camera launch rosbag获得 bag 文件 xxx为 bag文件的命名
  • QT上位机控制stm32,并利用PID控制编码电机旋转

    QT上位机控制stm32 xff0c 并利用PID控制编码电机旋转 由于最近在学习电机控制算法之类的东西 xff0c 看到论文大多使用PID 或以PID衍生的ADRC作为电机的主流控制 xff0c 于是自己也写了一个stm32控制L298N
  • 第十一章 STM32中断应用

    目录 11 1 中断概述 11 1 1 中断的基本概念和原理 11 1 2 STM32中断系统结构和工作原理 11 1 3 中断向量表及存储位置 11 2 中断控制器 11 2 1 NVIC的功能和特点 11 2 2 中断优先级的设置方法和
  • 第十二章 SysTick—系统定时器

    目录 12 1 STM32 SysTick基础知识 12 1 1 什么是SysTick 12 1 2 SysTick的作用和优势 12 1 3 SysTick寄存器及其功能介绍 12 2 STM32 SysTick标准延时函数设计 12 2
  • C语言入门:可变参数

    有时 xff0c 您可能会碰到这样的情况 xff0c 您希望函数带有可变数量的参数 xff0c 而不是预定义数量的参数 C 语言为这种情况提供了一个解决方案 xff0c 它允许您定义一个函数 xff0c 能根据具体的需求接受可变数量的参数
  • linux/clearlinux/ubun开机自动挂载文件配置方法

    开机自动挂载配置文件 etc fstab 以空格或制表位分隔为6列 本例以EXT分区 dev sda6配置自动挂载 xff0c 只跟设备设备名或挂载点即可进行挂载 xff0c 重启后将自动挂载 为交换分区 dev sda8配置自动挂载 xf
  • Ubuntu18.04 ROS melodic环境下,通过Gazebo软件仿真SLAM算法的学习(gmapping/karto/cartographer/hector)

    目录 一 环境场景搭建world 1 下载insert插件 xff08 该插件下会提供一些建好的场景 xff0c 也可不下载 xff09 2 环境搭建 xff08 自建 xff09 3 保存环境 4 配置修改 5 启动环境 二 机器人模型U
  • rosbag命令 | EVO工具 的使用

    目录 一 rosbag录制及查看 1 rosbag话题录制 2 rosbag信息查看 3 rosbag转换格式 xff08 bag2txt xff09 4 rosbag截取录制时间 二 EVO工具使用命令 1 evo traj 命令 2 e
  • 记一次FreeRTOS移植到STM32f103遇到的问题

    问题 xff1a 移植FreeRTOS源码后写了简单的程序验证 xff0c 使用keil软件仿真发现程序一直卡在开启任务调度函数vTaskStartScheduler 中 解决 xff1a 在FreeRTOSConfig h文件中加入以下代
  • 阿里云服务器怎么登陆

    一 xff0e 连接登录Windows阿里云服务器 对于Windows操作系统 xff0c 可通过PUTTY VNC和Windows系统自带远程桌面工具等方式访问 此处以Windows自带远程桌面工具为例 xff1a 1 单击 开始 图标
  • putty连接不上该怎么办

    虚拟机Oracle VM VirtualBox 操作系统是CentOS7 1 首先有配置好的虚拟机网络 2 要登陆虚拟机 3 用管理员身份打开cmd 4 连接putty 创建好虚拟机 xff0c 启动虚拟机 xff0c 进行登录 输入ip
  • LT87121 适用于EDPx/VBO转DP/EDP应用方案,支持中心扩频+5000ppm@30kHz,温度范围: -40°C~+85°C

    1 说明 LT87121 是一款高性能 eDPx 至 eDP DP 转换器 xff0c 专为将 eDPx 源连接至一个 eDP DP 灌电流而设计 该器件能够自动操作 xff0c 由集成微处理器启用 xff0c 该微处理器使用嵌入式SPI闪
  • OpenHarmony适配移植:X86、ARM、RISC-V、MIPS、LoongArch芯片架构简析

    前言 基于OpenHarmony的开发相关工作 xff0c 特别适配移植 设备开发这块 xff0c 芯片的基础构架知识 xff0c 是最初的学习起点 本文我们整理了几种常见的芯片构架的基础知识 一 整体分析 序号 架构 特点 运营机构 1
  • 个人笔记Openstack中的常用命令

    一 块存储 xff08 Cinder xff09 1 列出所有卷 xff08 ID 名称 状态 大小和挂载目录 xff09 openstack volume list 2 新建卷 xff08 size的单位为GB xff09 opensta
  • 380无人机机架组装笔记

    无人机机架买的380碳纤维 飞控买的pixhawk6c 遇到的问题 xff1a 1 买回来组装发现支撑板少了 xff0c 只有一个碳纤维的中心板和PCB板 组装无人机大概需要三到四块板子 xff0c 分别用于安放电池 xff0c 安装分电板
  • JS逆向-sm2、sm4加密某医保局

    前言 该文章为学习使用 xff0c 严禁用于商业用途和非法用途 xff0c 否则由此产生的一切后果均与作者无关 xff01 如有侵权 xff0c 请私信联系作者删除 需求 目标网址 xff1a aHR0cHM6Ly9mdXd1Lm5oc2E