网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2023-04-09 10:07

人气:

作者:admin

标签: 算法  函数 

导读:分析后得知requestObject由两部分组成,一部分为不固定参数,根据业务功能点不同传入不同的参数字典,另一部分为固定参数token、msgid、app_id、redisIdBindCustno添加到字典数据的尾部,然后...

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

解决大概思路:确定加签关键字-》分析前端代码获取加签算法-》使用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

审核编辑 :李倩

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信