前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >旋转验证码分析 rotatecaptcha

旋转验证码分析 rotatecaptcha

作者头像
李玺
发布2022-06-19 13:49:11
1.7K0
发布2022-06-19 13:49:11
举报
文章被收录于专栏:爬虫逆向案例

案例地址:http://rotatecaptcha.demo.api0.cn/ 案例内容:对某站的旋转验证码进行逆向分析,本文只作为学习案例。


文章目录


接口分析

验证码相关的接口有两个,getCaptcha 注册 、checkCaptcha 校验。

在测试站点中,headers中的 token是固定的,sign在最后校验时是动态的。

直接全局搜Sign或者md5

控制台输出下。

可以发现,是对请求参数进行了md5,所以每次校验时的sign时不同的。

但是这个参数中有很多值,比如key_1、key_2这些还需要再分析下。

可以用XHR断点,也可以直接搜。

比较明了,所以参数的分析就到这里了。

本地生成formdata的参数,然后拼接为字符串MD5加密后就是校验提交的Sign参数。


滑动距离

旋转角度 = (滑动距离 / 总滑动长度) * 总角度

rotationAngle = slide / 222 * 360

222是滑块最大移动距离,大家可以自己拿张图测试一下。

所以同理可得,滑动距离 = (总滑动长度 * 旋转角度) / 总角度


旋转角度

旋转验证码最难的应该就属图片的旋转角度了,这里先以某在线打码为例,后边再说如何做旋转识别。

如果此图旋转角度为 -80,注意负号,那么对应的滑动距离 = (222 * 280) / 360 ,距离为 172.66

那我们来校验一下。通过div的style可以看到当前的旋转角度。

也可以直接在元素的属性中查看。

发现滑块移动了173,图片旋转了280,和我们分析的一致。


移动轨迹

一般的轨迹是由角度和时间组成, 拿该站点的轨迹 mouseTrackList 示例。

定位参数后断点,可发现参数 r 是由转动角度经过一些计算得出。

代码:Math.ceil(a.imageTransform / 360 * 1e4) / 100 意思:先计算( 角度 / 360 * 10000 ),再通过浮点数向上取整规则,最后除以100得出r。

那我们可以按一些方法分割总的旋转角度,来构造一段轨迹用于校验。

到这里案例分析就结束了,出于礼貌,本文不写具体的实现代码。


图片识别

又到了推工具的时候,所谓术业有专攻,不建议大家为了做验证手动去打标签。

我们可以先用一些平台去识别旋转验证码,同时保存图片和旋转角度,在积累几百张不同的图片时再开始做识别模型。

或者说,如果一个网站的图片库是有限的,那我们完全可以下载下来后和我们本地存储的图片进行相似度匹配。

当然只喜欢开源的识别库也可以,比如 RotNet 图像旋转预测框架。

以及这两个开源库

  • Rotate-Captcha-Crack
  • Rotate-Captcha-Angle-Prediction
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 接口分析
  • 滑动距离
  • 旋转角度
  • 移动轨迹
  • 图片识别
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档