0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

记一次金融站点的验签破解实战

jf_hKIAo4na 来源:菜鸟学安全 2023-04-09 10:07 次阅读

近期同事遇到一个金融站点的前端加签验证问题,找到本菜鸡一起帮忙分析。经过测试发现,客户端每次请求都会对数据包进行加签,然后服务端会对数据包进行验签。

解决大概思路:确定加签关键字-》分析前端代码获取加签算法-》使用burpy插件调用前端加密函数自动对数据包进行加签操作

Burpy:一款burp插件,可自定义python脚本对数据包进行加解密。https://github.com/mr-m0nst3r/Burpy

确定加签关键字

开局一个登录框

642aa0a6-d66e-11ed-bfe3-dac502259ad0.png

通过测试得知,服务端会对每个请求数据包的“_msgid”和“_sign”参数进行验签,一但数据包被修改或者重复发送相同数据包,服务端则会返回“验证签名失败!”

645fe57c-d66e-11ed-bfe3-dac502259ad0.png

分析js获取加签算法

首先F12全局搜索查找“_msgid”的生成算法

6496461c-d66e-11ed-bfe3-dac502259ad0.png

找到对应的uuid()算法逻辑

64bd17f6-d66e-11ed-bfe3-dac502259ad0.png

把js加密代码抠出来复制到sign.js文件

64e5e3f2-d66e-11ed-bfe3-dac502259ad0.png

使用python的execjs模块调用sign.js的uuid函数,编写demo测试没问题,加签字段“_msgid”搞定

651cdb96-d66e-11ed-bfe3-dac502259ad0.png

接下来分析加签字段“_sign”的加密逻辑,通过sign关键字定位到getSign函数

654c39e0-d66e-11ed-bfe3-dac502259ad0.png

此处对前端代码进行调试,得知传入的参数requestObject为字典格式,通过对字典数据进行处理后得到参数“sb”的值,最终将“sb”的值MD5加密后得到加签字段“_sign”的值

65636282-d66e-11ed-bfe3-dac502259ad0.png

“_sign”的大致加密逻辑有了,那么就需要查看前端调用栈来查看传入参数“requestObject”的字典数据是如何生成的。

657f12d4-d66e-11ed-bfe3-dac502259ad0.png

分析后得知“requestObject”由两部分组成,一部分为不固定参数,根据业务功能点不同传入不同的参数字典,另一部分为固定参数token、msgid、app_id、redisIdBindCustno添加到字典数据的尾部,然后传入getSign获取加签参数“_sign”的值

65af850e-d66e-11ed-bfe3-dac502259ad0.png

65dd6a82-d66e-11ed-bfe3-dac502259ad0.png

编写加签脚本

大致的加签数据生成流程已经理清楚,接下来就需要编写burpy脚本搞定“_sign”加签参数,首先把getSign()函数的加密算法抠出来复制到sign.js文件中

66080670-d66e-11ed-bfe3-dac502259ad0.png

编写脚本调用sign函数获取加签参数“_msgid、_sign”的值,从而实现自动化对数据包进行加签。 (注意:传入的encrypt函数的body为str类型,返回时也必须为str类型)

66276ea2-d66e-11ed-bfe3-dac502259ad0.png

接下来可以开启burpy插件,即可自动替换数据包中的加签参数

6656915a-d66e-11ed-bfe3-dac502259ad0.png

66828896-d66e-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4599

    浏览量

    92627
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62425

原文标题:记一次金融站点的验签破解实战

文章出处:【微信号:菜鸟学安全,微信公众号:菜鸟学安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【freeRTOS开发笔记】一次坑爹的freeTOS升级

    【freeRTOS开发笔记】一次坑爹的freeTOS-v9.0.0升级到freeRTOS-v10.4.4
    的头像 发表于 07-11 09:15 4555次阅读
    【freeRTOS开发笔记】<b class='flag-5'>记</b><b class='flag-5'>一次</b>坑爹的freeTOS升级

    使用HAProxy软件的一次学习过程介绍

    一次学习过程
    发表于 06-13 10:48

    一次网站设计稿的方法

    一次网站设计稿
    发表于 06-16 09:43

    循环充放电一次就是少一次寿命吗?

    循环充放电一次就是少一次寿命吗?循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池的到底可以使用多长时间这样个性能,就规定了循环
    发表于 09-07 02:06 2040次阅读

    一次电池为什么不能被充电?

    一次电池为什么不能被充电? 一次电池不能被充电再生是构成一次电池体系的本性所决定的,因为一次电池的电极反应不可逆,也就是说,放电后的放电产
    发表于 10-28 15:29 5812次阅读

    循环充放电一次就是少一次寿命吗?

    循环充放电一次就是少一次寿命吗?     循环就是使用,我们是在使用电池,关心的是使
    发表于 11-11 13:59 844次阅读

    电池循环充放电一次就是少一次寿命吗?

    电池循环充放电一次就是少一次寿命吗? 循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池
    发表于 09-06 11:05 3593次阅读

    无线路由器密码破解Beini破解wpa实战教程详细说明

    本文档的主要内容详细介绍的是无线路由器密码破解Beini破解wpa实战教程详细说明。
    发表于 01-02 08:00 13次下载
    无线路由器密码<b class='flag-5'>破解</b>Beini<b class='flag-5'>破解</b>wpa<b class='flag-5'>实战</b>教程详细说明

    对于加解密、加你们有概念吗

    面对MD5、SHA、DES、AES、RSA等等这些名词你是否有很多问号?这些名词都是什么?还有什么公钥加密、私钥解密、私钥加、公钥。这些都什么鬼?或许在你日常工作没有听说过这些名词,但是
    的头像 发表于 07-02 11:44 2743次阅读

    一次CH552不识别无法下载解决办法

    一次CH552不识别解决办法插入链接与图片如何插入段漂亮的代码片生成个适合你的列表创建个表格设定内容居中、居左、居右SmartyPa
    发表于 01-12 19:15 5次下载
    <b class='flag-5'>记</b><b class='flag-5'>一次</b>CH552不识别无法下载解决办法

    CFCA签名服务器解决方案获鲲鹏Validated认证

    近日,中金金融认证中心有限公司(即中国金融认证中心,简称CFCA)签名服务器解决方案获鲲鹏Validated认证。CFCA联合中原鲲鹏生态创新中心对签名
    的头像 发表于 02-15 15:20 2480次阅读

    电气一次识图基础

    电气一次识图基础
    的头像 发表于 11-12 11:24 2098次阅读

    一次组合拳渗透测试

    在近段时间的实战中,遇到个使用多漏洞组合方式获取目标系统权限的环境。通过sql注入,账号密码爆破,任意文件下载,文件上传等多个漏洞获取webshell。
    的头像 发表于 11-17 10:56 2345次阅读

    一次调频和二调频的概念 一次调频可以实现无差调节?

    一次调频和二调频的概念 一次调频可以实现无差调节? 一次调频和二调频的概念 1.
    的头像 发表于 10-17 16:15 8931次阅读

    鸿蒙开发:Universal Keystore Kit密钥管理服务 签名、介绍及算法规格

    为实现数据完整性保护和防抵赖,可使用生成/导入的密钥,对数据进行签名操作。
    的头像 发表于 07-10 09:29 204次阅读
    鸿蒙开发:Universal Keystore Kit密钥管理服务 签名、<b class='flag-5'>验</b><b class='flag-5'>签</b>介绍及算法规格