某川数据接口逆向、SM系列国密算法

前言:仅做技术交流分享,如有侵权,联系删除!!

网址:aHR0cDovLzIwMi42MS44OS4xNjE6MTIwMjEvc3Vic2lkeU9wZW4=

请求载荷加密。

响应data加密

请求头Sign加密,时间戳加密,Source固定

跟栈分析

往上走了两步就摘到了

传入e(密文)调用Object(r"c")-->返回请求头参数,继续往上看看e怎么来的

请求参数--> parameter: Object(m"b")(JSON.stringify(i))

javascript 复制代码
// 明文字典对象
i = {
    "applyType": 1,
    "year": 2026,
    "buyerName": "",
    "code": "",
    "areaCode": "",
    "status": "",
    "distributor": "",
    "enterpriseId": "",
    "factoryNumber": "",
    "machineCode": "",
    "purchaseDateStart": "",
    "purchaseDateEnd": "",
    "pageNum": 3,
    "pageSize": 20
}
(JSON.stringify(i))// 把字典对象转为字符串
'{"applyType":1,"year":2026,"buyerName":"","code":"","areaCode":"","status":"","distributor":"","enterpriseId":"","factoryNumber":"","machineCode":"","purchaseDateStart":"","purchaseDateEnd":"","pageNum":3,"pageSize":20}'

将上面的字符串传到这里进行加密,

将上面加密方法扣下来:然后补补

复制代码
s = "30062AFC48C0E7B5B0918851C0445A37",s(密钥)是固定的,sm4算法也是标砖的

直接导模块就可以解决,

但是为了加深扣代码还有对webpack的理解,而且有时候不是标准的索性都做了

javascript 复制代码
 var l = n("8060").sm4--->webpack
   - 找n加载器
   - 8068 模块

在var l = n("8060").sm4-打上断点刷新页面,

复制代码
// 先定义自执行函数然后将n函数体复制进自执行函数中
javascript 复制代码
!function xxx(c){
    function t(e){
        if(u[e])
            return u[e].exports;
        var n=u[e]={
            i:e,
            l:!1,exports:{}
        };
        console.log(e)//查看调用了哪些模块,哪些模块还差
        return c[e].call(n.exports,n,n.exports,t),
            n.l= !0 ,
            n.exports
    }
    window.zy = t;
   }({// 这里补模块

    8060: function(t, e, n) {
            t.exports = {
                sm2: n("526b"),
                sm3: n("72fa"),
                sm4: n("10d1")
            }
        }

// 同理补上其他模块 sm2/sm3可以先注释掉,但是后面发现都要补
})
var l = window.zy("8060").sm4;

window.zy就是n,然后找到全局找8086模块在后面补上,把10d1模块补上就出结果了

现在请求载荷就拿到了,还差headers以及响应加密处理

请求头扣代码:

传入上面拿到的e

f方法拿下来

将上面e传入,缺啥补啥补

注意一下 return a = "object" === Object(i"a")(n) ? JSON.stringify(n) : n,三元表达式是对n类型判断,

到这里请求相关参数就都解决了,下一步模拟请求获取密文,解密密文、

可以拿到数据 可用

最后将密文解密

解密密文:

传入密文

调用

解密最后的,其实前面就扣过了,直接调用就行

这样就能获取到数据了,

相关推荐
zhoupenghui1682 分钟前
AI大模型应用部署之Flask框架使用
运维·python·docker·容器·flask·flask框架
ckjoker6 分钟前
手敲三Agent串行流水线,我发现了多Agent协作的隐形杀手
python·agent
稷下元歌6 分钟前
七天学会plc加机器视觉之AI 接入 外设模块开发全详细操作文档(全程配套视频按文档实操)
python·sql·qt·贪心算法·r语言·wpf·时序数据库
KaMeidebaby24 分钟前
卡梅德生物技术快报|细胞周期检测抗原流式分析:参数调试、软件拟合与问题排查
网络·人工智能·python·网络协议·tcp/ip·算法·机器学习
zmzb010335 分钟前
Python课后习题训练记录Day124
开发语言·python
geovindu35 分钟前
python: Broadcast Pattern
开发语言·python·设计模式·广播模式
winfredzhang44 分钟前
Python 实战:用 wxPython 写一个 MD5 文件查重清理工具
python·sqlite·json·wxpython·md5·预览·查重
装不满的克莱因瓶1 小时前
了解不同机器学习模型的分类
人工智能·python·算法·机器学习·ai·分类·数据挖掘
小江的记录本1 小时前
【Spring全家桶】Spring Cloud 2023.0.x:配置中心:Nacos Config、Apollo(附《思维导图》+《面试高频考点清单》)
java·spring boot·后端·python·spring·spring cloud·面试
财经资讯数据_灵砚智能2 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月7日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能