问题解决
1、前端开发方面的问题
关于electron使用第三方nodejs模块编译打包的注意事项
关于使用electron开发串口项目中编译的一些注意事项
推荐一款更好用的字体抽取工具font-spider
failed Error: not found: python2.7的问题解决
thinkphp5.0.24兼容php7.4
nginx配置api前缀url转发,解决跨越访问
uni-app使用阿里iconfont多色图标
公众里如何发布竖版的视频,使用SVG方式
使用requireJS引入element-ui
2、后端开发方面的问题
记一次在centos7下安装Django博客的安装踩坑
oracle Cause: java.sql.SQLException: 调用中的无效参数
四种方式可以获取到nacos里的配置信息
gradle3.1升级到gracle7.6版本需要更新的地方
Idea解决Service启动服务不显示端口号的问题
docker中部署的flowable流程图乱码
jdk11版本的jenkins如何打包jdk8项目 ?
windows下面批量更新某个文件夹下面所有的git项目目录
在centos7.9环境上安装 nodejs20版本
3、部署运维方面的问题
virtualBox虚拟机拓展磁盘空间
win10家庭版本安装远程桌面
ssh连接虚拟机CentOS缓慢解决方法
jenkins构建的时候报git: Permission denied错误
安装sqlserver2017的时候遇到的两个坑
CentOS 的 YUM安装时卡死解决方案
docker容器在还原nexus3的数据的时候,注意
4、效率提升方面
win10系统右键没有新建文本文档的选项
微信双开的脚本.bat
Github Copilot如何使用,使用的快捷方式
copilot GitHub Copilot could not connect to server. Extension activation failed: “getaddrinfo ENOTFO
使用ffmpeg 将mp4里的音频摄取成mp3
5、问题的反思
记一次解决投票高并发引发的性能问题
uniapp 在远程调试的时候,报错Invalid Host header
解决绘世启动器的报错:Could not initialize Tensile library
Photoshop2024无法拖动图片导入的解决办法
kgm音乐文件解密操作
玄派星曜+开源宇宙eg01-c+rtx 4060ti 的一些配置说明
centos9上面安装wireguard后,无法启动服务Failed to set DNS configuration: Could not activate remote peer.
记一次破解瑞数6的工作过程(完美解决)
本文档使用 MrDoc 发布
-
+
首页
记一次破解瑞数6的工作过程(完美解决)
因为工作原因,最近需要通过API接口请求的方式拿客户系统的一些数据,客户系统的每一个接口都使用了加密算法。 就是相同的参数不能请求两次! 比如下面这个接口 https://admin.test.com/test/item/hotPic/v1.0/qryHotPicPage?sqHSn1ie=0JEa8salqWh.yZ2JPnu1wY4KT7yZnwhFE.AhlWqTo8Old_A3VLkleUAyyMKoU8cQCE45W8vMcCnkajI6jaJM_6HNZkp2b7iGsE15TyuinkIqwri7pzDyCjG 后面的这个参数每次请求的时候都会变: sqHSn1ie=0JEa8salqWh.yZ2JPnu1wY4KT7yZnwhFE.AhlWqTo8Old_A3VLkleUAyyMKoU8cQCE45W8vMcCnkajI6jaJM_6HNZkp2b7iGsE15TyuinkIqwri7pzDyCjG 这是一个前后分离的系统,我试着分析了一下前端的代码,主要就是看app.js 这个文件,这个文件里 找到了 ba.interceptors.response.use这种代码,这个一看就是axios的拦截器,但是怎么解决还是没有思路。 后来 搞不定,只能咸鱼找人,搜索 js逆向 的相关字眼,找了一个人说你这个是瑞数6,说可以通过ck+补环境的方式 解决一下看看,350块钱。。。我说再考虑一下。 过了几天,我又在咸鱼上搜索 瑞数6 的相关字眼,找了一个湖北的哥们,,说能搞我这个东西,(最后花了300让他给付费解决了,搞完成直接转350...),,说跟这个url的参数没什么关系,,,关键点在于 系统里有一个 cookies的值 是动态计算的。  PRkRHgQbOUBBO 这个值 是不变的,开关的6代表这个是瑞数第6代技术。 PRkRHgQbOUBBP 这个值 每次请求都会变, 解决这个问题的关键,就在于把这个 值 给算出来。 涉及一个py文件和一个js文件。 python步骤如下: 先请求系统首页,然后拿到head里面的几个非常关键的参数!!! content ts_code js_src ,这三个值 ,如下图。  然后找开一个1.js的文件,把刚刚获取的3个参数 替换到这个js文件里面,然后执行通过python的exejs的库去执行这个js,这个 本机环境需求安装 nodejs,不然js执行不起来。。  然后执行完后,会算出 PRkRHgQbOUBBP 的值 ,把这个cookies和 系统里下面的三个cookies 合并 ~~~ cookie0 = { "JSESSIONID": "F7FB88584BFC23745AAA4F68695DBEE9", "Hm_lvt_43d60ebe530b59b32819870ba2eebcdf": "1745911266,1746528275,1746609190", "HMACCOUNT": "8A8C43B80F829079", "Hm_lpvt_43d60ebe530b59b32819870ba2eebcdf": "1746613231", } cookies.update(cookie0) ~~~ 最后把这个cookies 请示的时候带上,就可以正常访问接口了。。。 JSESSIONID因为 被设置成了httponly=on,通过js注入的方式还拿不到。。。 我是通过rpa工具 拿到的。 到这里的话,基本上大部分的接口都可以被正常请求了。 但是烦人的事又来了。。 上传图片的接口 不行。。 访问 : https://admin.test.com/test/mgmt/common/v1.0/uploadList  上传的参数里面有一个 secret的值 ,经过我多次的测试,这个在后台做了校验!!! 如果 secret 传的不对,就会提示 用户未登录。。 后来功夫不负有心人,我再次回到了我最初分析的那个app.js文件里下手。。在里面搜索 secret 字样。 找到了下面的关键代码!!  重点看红线的部分,,明显就是下面这个方法给算出来的, ${a}就是当前的系统的时间戳, _f5a11111111111e44e5a65aad1_ 是固定的字符串,算是盐值吧 ${sessionStorage.opId} 就是 sessionStorage里的 opId,我看了一下是用户的ID.. 但是这里的唯一问题就是 Object(X["d"]) 是一个方法名,被加密了。 按我的经验,看加密的字符,像是32位的md5值。。后面带了个1的参数,,可以是生成大小写的开关。。 先试试看吧,行不行再说。。 你猜接下来咋的。。。。竟然 TM可以了!!!太TM舒服 了。。。大吉大利,今晚吃鸡 ~~~ Object(X["d"])(`${a}_f5a11111111111e44e5a65aad1_${sessionStorage.opId}`,1) ~~~ 2025年5月10日 晚写于北京上德中心。
superadmin
2025年5月10日 21:19
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码