news 2026/10/17 6:49:01

某医保服务平台headers、signData、encData(SM2+SM4)逆向分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
某医保服务平台headers、signData、encData(SM2+SM4)逆向分析

⚠️ 免责声明:本文仅供技术交流与学习使用,请勿将相关技术用于非法用途或侵犯他人权益。

仅供学习使用,如有侵权,联系删除文章

目标接口:

aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL2VidXMvZnV3dS9hcGkvbnRobC9hcGkvQ29tbVF1ZXJ5L3F1ZXJ5Rml4ZWRIb3NwaXRhbA==

目标参数:x-tif-nonce、x-tif-signature、encData、signData,响应结果

通过xhr hook发现参数已经生成

跟踪堆栈,在 Promise.then 处单步进入下一个回调,发现是混淆代码(需进行ast反混淆),或者直接搜索encData

最终进入负责组装请求头的请求拦截器,并定位到 x-tif-signature 的生成位置。

参数来源/算法说明
x-tif-timestamp_0x701636时间戳
x-tif-nonceObject(_0x366b24.a)()随机字符串
x-tif-signaturesha256(timestamp+nonce+ timestamp)

signData分析

接着在下面定位signData和encData生成的位置

这里if恒为false,只需要关注else分支下的代码

进入_0x5e3f52函数,主要是 对明文data进行&拼接后,在尾部拼接key,key在之前就定义过了

最后使用 SM2 签名,并将结果转换成base64,生成signData

encData分析

需要在每个case上打上断点分析,最终在此case上进行的加密

解密encData

发现响应也是加密的

此处使用hook脚本进行定位解密位置

(() => { const originalParse = JSON.parse; JSON.parse = function (...args) { const result = Reflect.apply(originalParse, this, args); const field = result?.data?.data; if (typeof field?.encData !== "string") return result; console.log("[响应已解析]", result); let value = field.encData; Object.defineProperty(field, "encData", { configurable: true, enumerable: true, get() { console.log("[读取 encData]", value.slice(0, 32)); debugger; return value; }, set(next) { value = next; } }); return result; }; window.undoResponseHook = () => { JSON.parse = originalParse; }; console.log("响应 Hook 已安装"); })();

定位解密位置

运行成功案例:

出于安全考虑,本章省略大部分调试内容,不提供完整流程,仅保留核心思路,细节请自行调试还原,相信你也可以!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 6:47:53

14|RAG 入门:构建带来源引用的知识问答 - eino教程

14|RAG 入门:构建带来源引用的知识问答 《Eino 实战:用 Go 构建 AI 应用与智能体》 第 14 篇 关键词:Retriever、RAG、上下文组装、来源引用、无结果处理 前置条件:已完成 13|知识入库。 上一篇我们把资料整…

作者头像 李华
网站建设 2026/10/17 6:46:19

案例 2.2 图片与声音开发实践博客

前言本次完成微信小程序《案例 2.2 图片与声音》开发,实现图片点击控制音频播放暂停基础功能,并按照作业要求扩展播放速率、控制台打印播放信息,记录完整开发过程、代码与踩坑要点。一、项目功能说明页面加载完成后,展示宝塔山图片…

作者头像 李华
网站建设 2026/10/17 6:45:18

电器元件-荧光灯(日光灯)

简介荧光灯就是咱们以前常说的日光灯,属于气体放电灯。 灯管里面抽走空气,充少量氩气水银,管壁涂一层荧光粉。原理简单说: 通电后,灯管里的水银会产生看不见的紫外线;紫外线打在管壁荧光粉上,紫…

作者头像 李华
网站建设 2026/10/17 6:44:57

机器学习之模型评估

模型评估理论基础: 欠拟合 (Underfitting):模型过于简单,无法捕捉数据真实规律(类比:学生没理解核心概念)。 特征:训练误差和测试误差都高;模型复杂度不足;特征工程不充分…

作者头像 李华
网站建设 2026/10/17 6:44:47

用Python给自家WiFi做安全体检:从握手包抓取到弱密码检测

前两天有位读者在后台问我:用Python到底能不能把隔壁WiFi的密码跑出来?我盯着这条消息看了半天,第一个念头不是技术行不行,而是这事绝对不能碰。但转念一想,这个方向本身确实有巨大价值——只不过要把它放在合规的框架…

作者头像 李华