某同盾验证码

news2024/12/24 11:08:44

⚠️前言⚠️

本文仅用于学术交流。
学习探讨逆向知识,欢迎私信共享学习心得。
如有侵权,联系博主删除。
请勿商用,否则后果自负。

网址

aHR0cHM6Ly9zZWMueGlhb2R1bi5jb20vb25saW5lRXhwZXJpZW5jZS9zbGlkaW5nUHV6emxl

1. 先整体分析一下接口

在这里插入图片描述

1_1. 验证码信息下发接口 validatecode/v1
  • 参数 - 加密值不少,表慌不复杂
    在这里插入图片描述
  • 响应内容
    在这里插入图片描述
1_2. 验证接口 validatecode/v1
  • 参数 - 和信息下发接口一致 p1 - p9,加密逻辑应该是一致的
  • 响应信息1 - 验证成功
    在这里插入图片描述
  • 响应信息2 - 验证失败,重新返回验证码信息
    在这里插入图片描述

2. 底图还原

2_1. 乱序底图

在这里插入图片描述

2_2. canvas 断点
  • 简单调试一下就会发现几个关键位置

  • CanvasRenderingContext2D.getImageData(sx, sy, sw, sh):返回一个ImageData对象,用来描述 canvas 区域隐含的像素数据,这个区域通过矩形表示。【简单来说,其实就是对原图的一个切割】
    sx:将要被提取的图像数据矩形区域的左上角 x 坐标。
    sy:将要被提取的图像数据矩形区域的左上角 y 坐标。
    sw:将要被提取的图像数据矩形区域的宽度。
    sh: 将要被提取的图像数据矩形区域的高度。

  • CanvasRenderingContext2D.putImageData(imagedata, dx, dy): 是 Canvas 2D API 将数据从已有的 ImageData 对象绘制到位图的方法。
    imageData:ImageData,包含像素值的数组对象。
    dx:源图像数据在目标画布中的位置偏移量(x 轴方向的偏移量)。
    dy:源图像数据在目标画布中的位置偏移量(y 轴方向的偏移量)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 原图切割和还原的位置找到之后,现在只需要得到还原数组就可以还原底图了
  • 大致就是这个位置了,字符串 QOQ0oo 中的每个字符转化成 int 类型就是还原数组
  • 而这个字符串,存在于验证码信息接口中
    在这里插入图片描述
    在这里插入图片描述
2_3. 还原结果

在这里插入图片描述

3. 加密值分析

3_1. 加密位置

在这里插入图片描述

3_2. p1

在这里插入图片描述

  • oOoQQ0 固定值
  • window._fmOpt.token 生成位置
    在这里插入图片描述
  • window._fmOpt.partner 固定值
  • window._fmOpt.appName 固定值
3_3. p2在这里插入图片描述
  • p2 值的生成 主要就是这个 blackBox 值,由 window._fmOpt.getinfo() 生成
    在这里插入图片描述
  • window._fmOpt.getinfo() 存在于另一个js文件中 fm.js,参数由接口 /profile.json 返回的 tokenId 可固定
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • fm.js 文件本部复杂,大家可自行分析一下代码
3_4. p3
  • ooQQ0Q 进行 aes 加密,ooQQ0Q = MD5(p1 + ‘^^’ + p2) + + ‘^^’ + ‘|’ + ‘^^’ + ‘|’ + ‘^^’ + ‘|’ + + md5(‘161155^||^'时间戳’)
    在这里插入图片描述
    在这里插入图片描述
  • aes 加密有魔改, 我是直接扣的代码, 有兴趣的小伙伴也可以自行研究一下
    在这里插入图片描述
3_5. p4
  • 对 mouseInfo 信息AES加密, 经测试 mouseInfo 可固定
    在这里插入图片描述
3_6. p6
  • 8位随机字符串 + window.location.href, AES 加密
    在这里插入图片描述
3_7. p7
  • 需要用到 【p6】 和 【生成p3时生成的时间戳字符串】, 分别 md5 之后 + 32位随机字符串
    在这里插入图片描述
    在这里插入图片描述
3_8. p8
  • 生成p6时用到的 8 位随机字符串
    在这里插入图片描述
3_9. p9
  • 【生成p3时的时间戳字符串】, AES加密
    在这里插入图片描述
3_10. 至此,就可以顺利拿到验证码信息了,验证码验证时,p2 和 p3 生成时的参数所不同, 其他不变
  • p2:后面固定即可
    在这里插入图片描述
  • p3:aes之前,拼接上了验证码信息以及滑动信息
    在这里插入图片描述
3_11. 加密并不难,就是混淆的有点难受,把各值对应好即可。下面来说一下两个需要注意的点
  • 生成加密时用到的md5, 为原生md5, 可直接代码实现
  • 涉及到 AES 加密用到的 iv 值, 生成各加密值过程中需保持不变
    在这里插入图片描述

4. 验证结果

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1857952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地级市绿色创新及碳排放与环境规划数据(2000-2021年)

数据简介:分享各个城市对于碳排放的降低做出了哪些共享。该数据是地级市2000-2021年间由绿色创新、碳排放与环境规制数据构成的能源与环境研究数据大合集,并对其进行可视化处理,供大家研究使用。当今我国大力推进生态文明建设、美丽中国建设等…

【Python系列】FastAPI 中的路径参数和非路径参数解析问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PDF秒变翻页式电子画册

​在当今数字化时代,将PDF文档转换成翻页式电子画册是一种提升作品展示效果和传播效率的有效方式。以下是将PDF秒变翻页式电子画册的攻略,帮助您轻松掌握数字创作技巧。 首先,选择一个合适的制作工具是关键。目前市场上有多种在线平台和软件可…

元素旋转?一个vue指令搞定

说在前面 🎈鼠标控制元素旋转功能大家应该都不陌生了吧,今天我们一起来看看怎么编写一个vue指令来实现元素旋转功能吧! 效果展示 体验地址 http://jyeontu.xyz/jvuewheel/#/JRotateView 实现思路 1、自定义指令对象 export default {inse…

选择门店收银系统要考虑哪些方面?美业系统Java源码分享私

开店前的一个重要事件就是选择门店收银软件/系统,尤其是针对美容、医美等美业门店,一个优秀专业的系统十分重要,它必须贴合门店的经营需求,提供更全面、便捷、高效的管理功能,帮助提升门店的服务质量和经营效益。 以下…

品牌策划背后的秘密:我为何对此工作情有独钟?

你是否曾有过一个梦想,一份热爱,让你毫不犹豫地投身于一个行业? 我就是这样一个对品牌策划充满热情的人。 从选择职业到现在,我一直在广告行业里“混迹”,一路走来,也见证了许多对品牌策划一知半解的求职…

CPsyCoun:心理咨询多轮对话自动构建及评估方法

CPsyCoun: A Report-based Multi-turn Dialogue Reconstruction and Evaluation Framework for Chinese Psychological Counseling 在大模型应用于心理咨询领域,目前开源的项目有: https://github.com/SmartFlowAI/EmoLLM (集合,…

mp4转换成mp3怎么转?教你几种值得收藏的转换方法!

mp4转换成mp3怎么转?MP4,这一深入人心的数字多媒体容器格式,无疑在当今数字世界中占据了一席之地,那么,它究竟有何过人之处呢?首先,MP4的跨平台兼容性是其一大亮点,不论是在Windows的…

(一)、配置服务器的多个网卡路由,访问多个不同网络段

一、现场网络关系说明 有这么一个需要,服务器有三个网口,网口一需要访问外网,网口二需要访问内网1,网口2需要访问内网2。需要配置路由来满足该网络访问需要。 图1 现场网络关系 二、配置教程 步骤1: a、命令行输入…

A股羊群效应CSSD CSAD数据与Stata代码数据(2000-2023)

数据来源 参考马丽老师(2016)的做法,股价数据来源于东方财富网,采用上证180指数及构成上证180指数样本股日收盘价数据作为样本。上证180指数自2002年7月1日起正式发布,其样本股是在所有 A 股股票中抽取最具市场代表性…

react-native在IOS上集成百度地图详解

export default class BaiDuMapTest extends Component { render() { return ( ); } } const styles StyleSheet.create({ container: { flex: 1, justifyContent: ‘center’, alignItems: ‘center’, backgroundColor: ‘#F5FCFF’, }, welcome: { fontSize:…

若依-前后端分离项目学习

第一天(6.24) 具体参考视频 b站 楠哥教你学Java 【【开源项目学习】若依前后端分离版,通俗易懂,快速上手】 https://www.bilibili.com/video/BV1HT4y1d7oA/?share_sourcecopy_web&vd_sourcecd9334b72b49da3614a4257…

公司logo设计大全怎么找?直接帮你设计logo

公司logo设计大全怎么找?在品牌塑造的过程中,Logo无疑是至关重要的一环。一个优秀的Logo不仅能够有效传达公司的核心理念和品牌形象,还能在消费者心中留下深刻的印象。然而,对于许多初创公司或小型企业来说,制作出适合…

【稀疏三维重建】Flash3D:单张图像重建场景的GaussianSplitting

项目主页:https://www.robots.ox.ac.uk/~vgg/research/flash3d/ 来源:牛津、澳大利亚国立 文章目录 摘要1.引言2.相关工作3.方法3.1 背景:从单个图像中重建场景3.2 单目前向的多个高斯 4.实验4.14.2 跨域新视角合成4.3 域内新视图合成 摘要 F…

OpenBayes 教程上新 | 5 秒完成高考作文,Llama 3-Chinese-Chat Demo 上线!

Llama 3 自发布以来备受关注,并被誉为「迄今为止最好的开源大模型」,但 Llama 3 在支持中文方面仍然存在一些问题,比如在使用中文提问时,经常发生英文回复或者中英混合回复的情况,非常不方便。 使用中文向 Llama 3-8B-…

web应用-Nginx学习笔记01-应用的组成结构,配置项的分类和理解

参考来源: 在线文档:Nginx开发从入门到精通,https://docs.pythontab.com/nginx/nginx-book/ 极客专栏:nginx核心100讲,作者:陶辉 书籍:《深入理解Nginx:模块开发与架构解析》第二章 参考来源&a…

ONLYOFFICE 桌面编辑器 8.1

ONLYOFFICE 桌面编辑器 8.1 ONLYOFFICE 简介一、轻松编辑器 PDF 文件二、用幻灯片版式快速修改幻灯片三、无缝切换文档编辑、审阅和查看模式四、**改进从右至左语言的支持 & 新的本地化选项**五、隐藏“连接到云”板块六、在演示文稿中播放视频和音频文件七、版本 8.1&…

AI视频改字系统+五端兼容+卡密兑换+内置素材,系统搭建部署

目录 前言: 一、AI视频改字系统是什么 二、AI视频改字系统的功能 三、总结 前言: AI视频改字是利用套模板的原理,对短视频的模板进行更改,从而生成新的短视频。当然这个AI短视频改字系统都是有素材的,不用自己上传…

公共云遣返的经济性

在过去的几年里,显而易见的是,尽管公有云具有所有优势,但它并不能大规模地节省成本。它在一定程度上提高了生产力,但不会降低您的成本。公有云的好处在于,它提供了一个非常强大的价值主张,即基础设施可以立…

开放式供应链,践行智能费控4.0模式的基石

消费供应链在企业传统费用管理模式中是极度边缘化的存在,财务将其界定在职责之外,行政则因为价格政策不断的摇摆在不同的渠道之间。到了3.0移动报销时代,费控报销SaaS也只是简单的通过跳转或捆绑的方式来完成消费场景的接入,而将重…