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

    文章

    4456

    浏览量

    90852
  • 函数
    +关注

    关注

    3

    文章

    3984

    浏览量

    61378

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

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

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 Java项目实战金融项目)-异步回调

    前端javascript
    Mr_haohao
    发布于 :2022年09月08日 13:39:46

    一次失败的电子竞赛

    这是一次失败的电子竞赛。、报名我本来并没有参赛,也没有参与学校的预挑选,在学校预挑选出来的同学中有两个我们班的同学没有找到合适的队伍,之后他们找到了我。可能是因为在一次单片机实验中,老师要求写
    发表于 02-24 09:00

    最后一次

    最后一次了PCB打样找华强 http://www.hqpcb.com 样板2天出货
    发表于 12-06 23:43

    想按一次回车,for循环进行一次,请高手指教

    `想按一次回车,for循环进行一次,请高手指教下`
    发表于 11-11 21:22

    一次

    新人第一次发帖,还望多多指教,本人在互联先锋,做海外服务器这快的,有需要的可以Q我,有优惠哦!QQ:228830658
    发表于 05-16 16:42

    我也来个到

    我也来个我也来
    发表于 10-16 13:57

    labview网口UDP 发送一次指令和接收一次指令的时间

    最近在做微电网的个项目,请问下大神们labview以太网通信UDP 发送一次指令和接收一次指令的时间各是多少啊?谢谢
    发表于 09-18 23:31

    怎样让按钮按一次,while循环就执行一次

    我想做个按钮控制循环的程序,就是按钮按一次,循环就只执行一次就停下来,我按钮机械动作属于点触式的,求大神指教
    发表于 01-12 22:34

    通电开关一次

    继电器持续通电,吸合一次0.5S左右放开,还在持续供电中。断电重置。下次通电在重复上次动作
    发表于 07-26 18:13

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

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

    怎么破解通信基站站点建设的困难?

    MBB快速发展,站点建设面临极大挑战当前移动通讯正极大的改变着人们的生活方式,不管是视频聊天、电子购物,还是交通出行等,无线网络都在随时随地为用户提供便利。蜂窝移动通信已经发展到第四代(4G),对于
    发表于 08-16 06:16

    一次网站设计稿的方法

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

    如何利用STM32CubeMX外部中断实现按键按一次变化一次

    如何利用STM32CubeMX外部中断实现按键按一次变化一次
    发表于 11-17 07:06

    无线路由器密码破解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>教程详细说明

    芯片漏洞实战破解KASLR

    Meltdown和Spectre分析以及CPU芯片漏洞攻击实战,教你如何破解macOS上的KASLR。 作者:蒸米,白小龙 @ 阿里移动安全 来源: https://paper.seebug.org
    的头像 发表于 11-26 13:47 2793次阅读