当前位置: 首页 > news >正文

某公共资源中心-sm2逆向

目标网站:

aHR0cHM6Ly9nZ3p5Lmpjcy5nb3YuY24vd2Vic2l0ZS90cmFuc2FjdGlvbi9pbmRleA==

接口分析:

        打开抓包面板,点击翻页发现数据包list;

        检查详情发现请求携带参数加密和返回参数加密,headers和cookies都没检验;

加密分析:

        分析完存在加密的地方就可以断点跟栈了,先看请求加密,请求加密在send函数前完成的。

        继续向前跟栈,在下图所示地方发现加密前的参数原文,打上断点刷新往下跟栈,跟到图二位置return "04" + d.doEncrypt(t, Object(u.a)(A), 0),发现传入参数原文,返回参数密文,这里就是加密参数生成的地方。这里的Object(u.a)(A)不用管,是一个迷惑性的操作,主要是在前面对0427404e3ad3e58323e62f09baf1a65ff9ded099bb3672c0c2fa632b28b1c687d01b2d92aa3032c8eacf5d7cb71c0dfdbb2da6d63cd6c1be6ada4da81136dbc3cc这个密钥先进行的des加密然后又进行des解密,注意图三框选的地方首先定义引用了s.a.sm2,这表明这里可能是使用的sm2进行加密,第二个框选的可能就是密钥。

        分析加密函数特征,需要传入三个参数,第一个参数t是请求参数的字符串,第二个参数是上面给出的字符串0427404e3ad3e58323e62f09baf1a65ff9ded099bb3672c0c2fa632b28b1c687d01b2d92aa3032c8eacf5d7cb71c0dfdbb2da6d63cd6c1be6ada4da81136dbc3cc,第三个参数0(这个是使用何种加密模式,默认为1),点进这个函数,发现是标准的sm2加密,可以直接使用三方库实现。

const r = require('sm-crypto')
let d = "0427404e3ad3e58323e62f09baf1a65ff9ded099bb3672c0c2fa632b28b1c687d01b2d92aa3032c8eacf5d7cb71c0dfdbb2da6d63cd6c1be6ada4da81136dbc3cc"function en_data(data) {return "04" + r["sm2"].doEncrypt(JSON.stringify(data || {}), d, 0)
}

解密:

        解密函数一般在send函数后,还是在send打上断点往后跟栈,在跟到d.doDecrypt(t, "17d7cf5e57b0ca0d5db32409d222888b3bc0a711ac05707d1e0ea1f31d2ab5b1", 0),这个地方时,发现传入返回密文,返回返回密文。这里也是传入三个参数:t=密文,"17d7cf5e57b0ca0d5db32409d222888b3bc0a711ac05707d1e0ea1f31d2ab5b1"=密钥,0=加密模式(这里必须加密对应,不然会出不了结果),点进去发现还是标准sm2解密,直接使用三方库实现。

function de_data(en_data) {let n = null === en_data || void 0 === en_data ? void 0 : en_data.substr(2);c = JSON.parse(r["sm2"].doDecrypt(n, s, 0))return c
}

结果:

        请求和接管解密都能成功。


文章转载自:

http://vcHhOdWr.jjfyh.cn
http://tF8zQkAc.jjfyh.cn
http://uOfxzTmG.jjfyh.cn
http://KsR4nDaK.jjfyh.cn
http://UC6SzeyZ.jjfyh.cn
http://sFAOsURr.jjfyh.cn
http://gcPlTMbq.jjfyh.cn
http://zPSCJea9.jjfyh.cn
http://2UdhKNMg.jjfyh.cn
http://JVUSS6AC.jjfyh.cn
http://9i3O5m0l.jjfyh.cn
http://GEVwTjk5.jjfyh.cn
http://wF0Vm4dh.jjfyh.cn
http://Kl8nkv6a.jjfyh.cn
http://8qDEtumL.jjfyh.cn
http://iDuwKLHA.jjfyh.cn
http://eVg1Iysa.jjfyh.cn
http://jv4CKbux.jjfyh.cn
http://XrF8hfAu.jjfyh.cn
http://UdFOFXZC.jjfyh.cn
http://mbYwQHVD.jjfyh.cn
http://fK9305fA.jjfyh.cn
http://Rvvr6tfM.jjfyh.cn
http://EDjraJLq.jjfyh.cn
http://Rwj2m7Sv.jjfyh.cn
http://oKuLULfI.jjfyh.cn
http://Mmn29flG.jjfyh.cn
http://EvjiwogF.jjfyh.cn
http://SMlz6btI.jjfyh.cn
http://1ades5xi.jjfyh.cn
http://www.dtcms.com/a/373651.html

相关文章:

  • 数电实验二任务验证指南(开关操作与指示灯观察)
  • Redis Stream:轻量级消息队列深度解析
  • RAG-5-案例1
  • 点亮智慧城市:智能照明开关驱动器如何重塑路灯控制新纪元
  • 开发中使用——鸿蒙播放本地mp3文件
  • DLL修复是什么意思?为什么总会缺失?(详细教程)
  • 高强度应用下天硕工业级SSD固态硬盘真的更耐用吗?
  • c++基础学习(学习蓝桥杯 ros2有C基础可看)
  • SpringBoot学习日记 Day10:企业级博客系统开发实战(一)
  • 嵌入式学习---(硬件)
  • 写算法第二题(英语介词)dom对象
  • cn2an:中文数字与阿拉伯数字的智能转换工具
  • Hive和Flink数据倾斜问题
  • 嵌入式ARM架构学习2——汇编
  • 渗透测试全景解析:从基础概念到实战演练
  • 鸿蒙Next应用UI稳定性故障调试:从崩溃到流畅的实战指南
  • 企智汇施工工程项目管理系统:全生命周期信息化管理解决方案!施工企业管理系统!施工企业项目管理软件!工程项目管理系统!工程项目管理软件!
  • 遥感数据同化方法:集合卡尔曼滤波和变分同化算法
  • mac安装Java开发环境
  • Java网络初识(2):IP地址和端口号,协议,五元组
  • 什么是算法:高效解决问题的逻辑框架
  • EFCore与EF6:ORM技术深度解析
  • 【开题答辩全过程】以 线上“三味书屋”学习平台设计与实现为例,包含答辩的问题和答案
  • iframe引入界面有el-date-picker日期框,点击出现闪退问题处理
  • BP-Adaboost模型
  • 使用redis的发布/订阅(Pub/Sub), 实现消息队列
  • 鸿蒙:更改状态栏、导航栏颜色
  • [数据结构——lesson4.双向链表]
  • 集成学习:从理论到实践的全面解析
  • 机器学习-集成学习