文章总结: 文档阐述了滑块验证码的前端交互与后端验证原理,分类介绍基于图像识别与行为分析的验证机制。重点详述行为拟真、参数重放、JS逆向及接口绕过等实战思路。此外补充了SRC挖掘中信息泄露、CORS配置错误及地图Key泄露等低中危漏洞的挖掘技巧,具备较高实战参考价值。 综合评分: 80 文章分类: SRC活动,WEB安全,实战经验,漏洞分析
SRC实战系列-图形验证码之滑块
原创
鲨鱼辣椒 鲨鱼辣椒
B1acktide安全团队
2026年3月5日 22:46 重庆
一、原理及其分类
原理:滑块验证码的工作流程可以分为前端交互、后端验证
- 前端交互:用户拖动滑块完成拼图。这个过程中,前端会记录下用户的滑动轨迹、速度、加速度、点击的停顿等一系列行为数据,并连同最终的滑块位置一起发送给服务器。
- 后端验证:服务器收到数据后,会进行双重校验:
图像验证:检查滑块最终停留的位置是否与预存的目标位置一致或误差极小。
行为验证:利用机器学习模型分析收到的行为数据,判断其是否符合人类的操作习惯(例如,机器可能画出完美的直线,而人的轨迹总会有细微抖动)。
分类:逻辑上讲,可以大致分为两类
基于图像识别:核心是验证用户是否将滑块拖动到了正确的图像坐标上。
基于行为分析:更侧重于验证用户的拖动行为特征(如轨迹、速度)是否自然。
二、绕过思路
滑块验证码的验证逻辑是基于图像和行为轨迹的,所以绕过思路也可以分为两个方向:行为拟真和底层绕过。
行为拟真:
1. 模拟滑动
原理:机器直接移动鼠标通常是从A点直线到B点,匀速且僵硬。而真人操作往往有起点停顿、中途抖动、速度由慢到快再到慢等特征。
绕过方式:可以通过自动化脚本,算法生成类似人类的贝塞尔曲线或随机抖动轨迹,从而欺骗后端的行为检测模型。
底层绕过:
1. 参数重放(未加密)
原理:一些简单验证码只验证起点和终点坐标或者滑动的距离,不严格验证中间轨迹的真实性。
绕过方式:抓包成功的滑动轨迹数据包,记录相关的参数,在需要破解时修改相关参数或者直接原封不动地重放这段数据包。
2.前端JS逆向
原理: 在金融、医疗等数据保密要求极高的系统中,几乎所有的请求参数和数据都是经过加密的。但是可以通过分析滑块验证码的前端 JS 代码,逆向出参数加密逻辑,复现加密过程,生成合法的验证参数。
绕过方式:首先抓包分析请求的参数,然后在前端找到处理这些参数的JS文件,分析加密算法(偏移量、拼接规则、AES密钥等)。再通过脚本复现加密逻辑,根据滑动轨迹生成明文参数后再生成密文,提交最终的密文完成绕过。
3.接口绕过
原理: 通过抓包分析目标接口与验证码验证接口的关联关系,找到后端校验的漏洞,直接绕开滑块验证环节,或伪造简单的验证参数通过校验
绕过方式:1、直接尝试尝试访问目标接口。2、未对token进行校验,可以将 token 设置为固定值或空值。3、验证的参数是固定的。
那么有同学就要问了,主播主播,你写的这些有什么用啊?emm…其实用处不大。所以补充一点之——安服如何水洞
1、究极逆天之信息泄露
话不多说上图
恭喜你——版本信息泄露,喜提低危一个,胆子大可以写中危。
如果在js中找到类似的邮箱地址,并且是他们内部的私人邮箱
恭喜你——邮箱地址泄露,再一次喜提低危一个,数量够多可以写中危。
如果在js中找到类似的IP地址,并且是他们内网的
恭喜你——内网IP地址泄露,再再一次喜提低危一个,这个不能写中危。
如果你在测试时下姬霸点的时候,惊喜的出现类似的错误
恭喜你——系统路径泄露,再再再一次喜提低危一个,胆子大依旧中危。
2、神奇的CORS跨域资源共享
但你将你的请求包中的0rigin改成其他的url,并且神奇的发现响应中的access-control-allow-origin变成了你修改的url
恭喜你——CORS跨域资源共享,又喜提低危一个,这个你敢写中危包炸钢的。
3、地图key泄露
如果你正在无聊的抓包放包,突然你发现出现了key或者ak字样的参数,并且后面跟着一串神秘字符串,然后再验证一下。
验证用payload:
高德webapi:
https://restapi.amap.com/v3/direction/walking?origin=116.434307,39.90909&destination=116.434446,39.90816&key=这里写key
高德jsapi:
https://restapi.amap.com/v3/geocode/regeo?key=这里写key&s=rsv3&location=116.434446,39.90816&callback=jsonp_258885_&platform=JS
高德小程序定位:
https://restapi.amap.com/v3/geocode/regeo?key=这里写key&location=117.19674%2C39.14784&extensions=all&s=rsx&platform=WXJS&appname=c589cf63f592ac13bcab35f8cd18f495&sdkversion=1.2.0&logversion=2.0
百度webapi:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key
百度webapiIOS版:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key=iPhone7%2C2&mcode=com.didapinche.taxi&os=12.5.6
腾讯webapi:
https://apis.map.qq.com/ws/place/v1/search?keyword=酒店&boundary=nearby(39.908491,116.374328,1000)&key=这里写key
如果成功出现类似信息
恭喜你——XX地图key泄露,喜提中危一个。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:B1acktide安全团队 鲨鱼辣椒 鲨鱼辣椒《SRC实战系列-图形验证码之滑块》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论