【验证码逆向专栏】某验“初代”滑块验证码逆向分析

news2025/1/17 21:58:09

00

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除!

逆向目标

  • 目标:某验”初代“滑块验证码,实为二代离线模式,validate 参数逆向,底图获取及还原
  • 主页:aHR0cHM6Ly9mdy5zY2pnai5zaC5nb3YuY24vbm90aWNlc2gvaG9tZQ==
  • 加密算法:MD5

前世溯源

众所周知某验是首家 ”行为式验证“ 安全技术服务提供商,其摒弃了扭曲复杂的字符图片验证码,大大增强了用户的体验感。某验最初代的验证码,是在2012年年底完成的,产品还在内测时,最早的种子用户,大都来自于创始人吴渊母校武汉大学的珞珈山水BBS站:

01

2014年年中,极验正式开放服务,武汉本土互联网企业尤其是游戏类企业给予了“力挺”。武汉265G是全国最大的网页游戏资讯网站,率先使用了极验“点一下拖一下就能完成验证”的全新验证方式。后来,通过口口相传,武汉17173、电玩巴士等游戏门户网站,也陆续使用其产品。“行为式验证”上线后从游戏行业开始,逐步取代互联网上各种形式的传统验证码,推广到全国各地。

下图为早年市面上的初代产品,时过境迁,是否还存在网站使用无从得知,如果有了解的欢迎私聊 K 哥:

02

抓包情况

真正的初代产品无从分析,上一篇 K 哥写的为二代滑块在线模式,可以阅读:【验证码逆向专栏】某验二代滑块验证码逆向分析,本案例为二代滑块离线模式分析,与常规的某验产品还是有较大区别的,主页输入企业名称点击搜索会弹出滑块验证码,register 接口返回熟悉的 challengegt 参数:

03

如果对某验其他产品了解的话,图片下载路径及加密参数是通过类似 get.php 接口返回的,并且 validate 参数是校验 w 参数后得到的,而当前过掉滑块后,validate 参数直接生成并完成校验了,所有流程都是在本地直接执行的:

04

  • validate 接口:校验滑块是否通过;
  • ent_info_list 接口:校验 session.tokenvalidate,未通过则和一开始的 home 接口返回内容一致,通过则会多出相关企业信息。

逆向分析

主页搜索生成验证码后,从验证接口 validate 处跟栈,跟进到 u1G.<computed> 中:

05

格式化,进入到 geetest.0.0.0.js 文件的第 5689 行,该行打下断点滑动滑块即会断住,可以看到 H2Y 为 fail,此时已经校验完成,并显示失败了:

06

继续向上跟栈,在第 3273 行打下断点,这里即为校验的位置:

07

关键部分如下:

W1Y[f2Z.S3C(60)](m1Y, f1G[f2Z.t3C(537)](f2Z.t3C(551), R1Y[f2Z.S3C(278)])[f2Z.t3C(155)]() - f1G[f2Z.S3C(537)](f2Z.S3C(633), R1Y[f2Z.S3C(278)]), R1Y)

于控制台打印一下,初步推测 W1Y[f2Z.S3C(60)] 方法校验了滑动距离、滑动时间及其他的一些参数:

08

跟进 W1Y[f2Z.S3C(60)],跳转到 offline.6.0.0.js 文件中,格式化后,打断点会发现这里就是 validate 参数的加密位置:

09

validate: b.A(c, e.d.challenge) + "_" + b.A(a.b("rand0", e.c), e.d.challenge) + "_" + b.A(a.b("rand1", e.c), e.d.challenge)

c 为滑动距离,e.d.challengechallenge 参数的值,e.c 为13位时间戳,加密方式为 b.Aa.b,扣下来即可,不过经测试 a.b("rand0", e.c) 即 d,a.b("rand1", e.c) 为 e 的值,分别定义在下图第 173、174 行,分析过程中发现采集了滑块轨迹,不过并没有校验,validate 参数分析完了,那图片路径在哪呢,就在这部分的上面,f、g 经过了 MD5 加密,同样直接扣下来:

10

不过直接这样下载的图片是乱序的,还原代码同三代滑块及二代滑块在线模式基本一致,宽度需要改动,可参考 【验证码逆向专栏】某验三代滑块验证码逆向分析:

11

还原后如下:

12

结果验证

滑块验证:

13

搜索结果验证,需要先从 home 接口中获取到 session.token,再加上 validate 等参数即可:

14

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

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

相关文章

【算法】递归

目录1.递归概述2.何时使用递归2.1.定义是递归的2.2.数据结构是递归的2.3.问题的求解方法是递归的3.递归模型4.应用本文参考&#xff1a; 《数据结构教程》第 5 版 李春葆 主编 1.递归概述 &#xff08;1&#xff09;在定义一个过程或函数时&#xff0c;出现直接或者间接调用自…

【微服务】Elasticsearch文档索引库操作(二)

&#x1f697;Es学习第二站~ &#x1f6a9;Es学习起始站&#xff1a;【微服务】Elasticsearch概述&环境搭建(一) &#x1f6a9;本文已收录至专栏&#xff1a;微服务探索之旅 &#x1f44d;希望您能有所收获 一.索引库操作 索引库就类似数据库表&#xff0c;mapping映射就类…

DGIOT低代码场景部门的搭建过程

[小 迪 导读] : 通过低代码页面与konva 大屏的页面设计,围绕部门&#xff0c;实现应用场景快速搭建1.部门创建以及权限分配1.1 打开部门管理页面1.2新增部门1.3 权限分配&#xff0c;点击刚创建的部门&#xff0c;在菜单分配中选择总控台和设备管理(低代码平台会过滤掉非低代码…

Wandb:make visualization better than Tensorboard

Wandb&#xff1a;make visualization better than Tensorboard wandb :一个在线的可多人协作的多功能可视化工具包 我最开始使用的tensorboard&#xff0c;还写了一些相关tensorboard的脚本用于实验。tensorboard这里就不详细介绍了&#xff0c;相信大家都比较了解。直到尝试了…

【MySQL数据库入门】:表的约束

表的约束 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务 逻辑角度保证数据的正确性。比如有一个字段是email&#xff0c;要求是唯一的。 表的约束很多&#xff0c;这里主…

版本管理之Git

一.版本控制器的方式1.1集中式版本控制工具集中式版本控制工具&#xff0c;版本库是集中存放在中央服务器的&#xff0c;team里每个人work时从中央服务器下载代 码&#xff0c;是必须联网才能工作&#xff0c;局域网或互联网。个人修改后然后提交到中央版本库。 举例&#xff1…

巧用回调函数解决微信小程序与后台数据交互出现的异步问题

问题描述 微信小程序端需要发送一个包含文字与图片的表单数据给后端&#xff0c;我一开始的思路是先上传图片得到临时的URL&#xff0c;后执行POST请求将表单数据发送给后端&#xff0c;但后端只能获取到文字&#xff0c;而图片URL却始终获取不到。 问题原因 注意看我上面的思路…

目标检测研究

传统的目标检测流水线 1.候选区域生成 通过滑动窗口选择感兴趣区域Rol;使用多尺寸的输入图像和多尺度的滑动窗口识别多尺度和不同比例的目标。 ⒉特征向量抽取 常用SIFT、 Harr、HOG、SURF。 3.区域分类 常用支持向量机。 结合集成、串联学习、梯度…

3D俯视角色割草游戏模板+视频教程,免费发布 | 一周精品推荐

大家好&#xff0c;我是晓衡。新年开工第一周&#xff0c;我就被热心的开发者们感动得热泪盈眶&#xff01;今天我冒死推荐几款 Creator 游戏开发资源&#xff0c;希望能对得起这些开发者们&#xff0c;同时也希望你能也有所收获。3D俯视角割草游戏视频源码B 站 UP 主『好巧啊c…

MyBatis 数据查询语句中有关于大于,小于的书写方法 及 查询时相关sql 关键字

前言 提示&#xff1a;这里记录的大概内容&#xff1a; MyBatis 数据查询语句中有关于大于&#xff0c;小于的书写方法 一、MyBatis MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code&#xff0c;并且改名为…

Python封装、继承和多态

Python 语言在设计之初&#xff0c;就定位为一门面向对象的编程语言&#xff0c;“Python 中一切皆对象”。同时&#xff0c;Python 也支持面向对象的三大特征&#xff1a;封装、继承和多态。 一、封装 封装&#xff08;Encapsulation&#xff09;&#xff0c;即在设计类时&am…

讲师邀请 | 在 DevData Talks,开放务实地聊聊研发效能!

什么是 DevData Talks&#xff1f; DevData Talks 是专注于研发效能实践经验与方法论的系列分享活动。 2022 年&#xff0c;我们既看到外部环境变幻莫测&#xff0c;也看到研发效能领域沉下心来稳步发展&#xff0c;从宏大的概念和价值&#xff0c;转向具体的问题&#xff0c…

若依框架代码自动生成器研究-表查询篇

最近生产环境用了一个开源系统&#xff1a;若依&#xff0c;其中有一个版块很有意思&#xff0c;很能提高生产效率: “代码生成器”。 其功能所处模块菜单为&#xff1a;系统工具->代码生成。我们来研究一下他的代码生成逻辑。 工具使用方法 1、建表 使用代码生成&#…

Python列表中你所不知道的事

1. 引言 目前&#xff0c;Python是世界上使用最广泛、最受欢迎的编程语言之一。Python丰富的功能性使它非常流行&#xff0c;因为我们可以使用它创建任何内容。我将在本博客中与大家分享关于Python列表的几条有趣的花絮。 闲话少说&#xff0c;我们直接开始吧&#xff01; 2.…

如何高薪入职心仪的公司

序 本文首发自&#xff1a;稀土掘金、思否 我们从几个问题开始入手&#xff0c;来看一下本博客是否适合你&#xff1a; 如果你想要换工作&#xff0c;但是&#xff1a;制作的简历平平无奇如果你想要换工作&#xff0c;但是&#xff1a;投放了的简历总是无法得到 [心仪公司] 的…

SpringBoot+Vue茶叶商城系统

简介&#xff1a;本项目采用了基本的SpringBootVue设计的茶叶商城系统。详情请看主要截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVue茶叶商城系统源码作者LHL项目类型Java EE项目 &#xff08;…

C#windows彩票信息管理

摘要&#xff1a;近年来&#xff0c;中国彩票行业已经进入市场急速扩张和加速上升的阶段&#xff0c;即开票占整个彩票销量的比率也将急剧上扬。自助售彩终端&#xff0c;这一崭新的售彩模式已被中国彩民接受&#xff0c;爆发点很快来临。到2020年&#xff0c;我国多功能彩票自…

百趣代谢组学文献分享:OnPLS方法在哮喘领域应用研究

百趣代谢组学文献分享&#xff0c;本周分享的文献题目为OnPLS-Based Multi-Block Data Integration: A Multivariate Approach to Interrogating Biological Interactions in Asthma&#xff0c;是由日本前桥群马大学创新研究中心Craig E. Wheelock教授课题组在2018年发表于Ana…

商业智能 BI 人员的六个Level,你到了哪一层?

现在商业智能 BI 行业的从业人员越来越多&#xff0c;但很多人对于自己的职业规划可能并不是特别的清晰&#xff0c;不知道在这个细分领域到底有多大的成长空间&#xff0c;未来大概可以走到哪一个层次。 今天大概介绍下这六个层次&#xff0c;可以是大多数从事商业智能 BI 工…

【计算机程序设计思想与方法】1 什么是计算?

计算是利用计算机解决问题的过程,计算机科学是关于计算的学问。 计算机科学家在用 计算机解决问题时形成了特有的思维方式和解决方法,即计算思维。 1.1 什么是计算? 1.1.1 计算机与计算 计算机是当代最伟大的发明之一。 自从人类制造出第一台电子数字计算机,迄今已近 …