滑动验证
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
一个函数破解Geetest滑动验证码 manwu912017-07-24现金奖励共626079人围观 ,发现 16 个不明物体 WEB安全
* 本文作者:manwu91,本文属FreeBuf原创奖励计划,未经许可禁止转载
本文主要讨论极验滑动验证码的轨迹生成,关于js加密请参见之前的文章。
极验的验证过程
请求被保护网站,取得gt, challenge参数。响应如下{"success":1,"gt":"4a28913077af48ca6eadebe01f3be4d2","challenge":"2bc1d118b34d9f2f7bc981067a3bee68"}注意这里的success参数。success为1表示在线验证模式,即需要上传滑动轨迹到api.geetest.com做验证;当为0时表示是离线模式,只需要通过Js计算就可以得到validate参数。
通过gt, challenge请求api.geetest.com取得图片路径等参数
加密用户的滑动轨迹,传送给api.geetest.com进行验证,验证成功返回{"success": 1,"message":"success","validate":"57fe2ff29397484dc3fdceb54334771e","score":1}, 从而拿到validate参数。
滑动轨迹的分析
如下是一次验证成功的轨迹样本。
[-20,-20,0];[0,0,0];[0,0,341];[0,0,351];[1,0,356];[2,0,364];[4,0,372];[8,0,386];[14,0,389];[20,0,398];[29,0,405];[39,0,414];[44,0,421];[54,0,426];[62,0,440];[70,0,442];[77,0,456];[85,0,459];[92,0,472];[99,0,475];[106,0,490];[114,0,492];[121,0,506];[128,0,508];[131,0,516];[136,0,532];[139,0,533];[143,0,540];[145,0,549];[147,0,556];[148,0,565];[150,0,575];[151,0,581];[152,0,592];[152,0,598];[153,0,608];[154,0,616];[154,0,624];[154,0,632];[155,0,640];[155,0,648];[155,0,657];[155,0,662];[156,0,673];[156,0,678];[157,0,685];[158,0,700];[159,0,705];[159,0,715];[160,-1,719];[161,-1,726];[162,-1,739];[162,-1,742];[163,-1,756];[164,-1,758];[165,-1,767];[166,-1,781];[167,-2,783];[168,-2,791];[169,-2,799];[170,-2,807];[171,-2,815];[172,-2,823];[173,-2,835];[174,-2,840];[175,-2,849];[175,-2,859];[176,-2,865];[176,-2,872];[176,-2,883];[176,-2,889];[177,-2,900];[177,-2,956];[177,-2,973];[177,-2,1042];[177,-2,1074];[178,-2,1107];[178,-2,1115];[178,-3,1123];[179,-3,1132];[180,-3,1140];[181,-3,1147];[181,-3,1155];[182,-3,1166];[182,-3,1173];[183,-3,1182];[183,-3,1191];[183,-3,1198];[183,-3,1205];[183,-3,1228];[183,-3,1277];[184,-3,1544];[184,-3,1552];[184,-3,1577];[184,-3,1596];[185,-3,1609];[185,-3,1617];[185,-3,1634];[185,-3,1649];[186,-3,1666];[186,-3,1682];[186,-3,1706];[186,-3,1717];[187,-3,1734];[187,-3,1750]
通过分析可知,每个轨迹节点由三部分组成,我们将它定义为[x,y,z]。
x表示滑动时的横向位移坐标; 值为正向右移动,为负时向左移动; 即x轴偏移量
y表示滑动时的纵身偏移。
z表示滑到当前x坐标的用时(ms)
样本中第1个节点表示按下鼠标时相对于滑块左上角的位置,第2个节点固定为0,第3个节点表示开始移动。使用matplot绘制[x,z],得到典型的成功的轨迹图
一个函数破解geetest滑动验证码
由轨迹图可知,整个移动过程分为三个阶段:按住还未移动、开始大辐移动、微调。
移动阶段的图形与tanh函数非常像,我们可以用这个函数生成移动阶段的轨迹。
tanh_plot.gif
也就是说我们可以通过对tanh函数进行拉伸、放大就可以了。
函数
1. 移动阶段取T0表示开始运动时间, T1表示运动到目标位置时间。D表示目标位移量,移动阶段的函数式f(t)如下
func.png
2. 微调这段只要时间间隔设置大点,并控制总用时在1500ms左右就可以了。这个阶段虽然简单但如果设置得不合理很容易导致验证失败。
后记
笔者在本机单ip测试了20次,成功了16次,成功率80%,对于爬虫来说已经够用了。代码就不放了,省得拉仇恨。而且交流发现有很多牛人早已经成功破解了,或使用机器学习或使用函数回归。
另外在分析时发现有些网站一会儿使用在线模式,一会儿又变成离线模式。在极验的资费套餐中发现其收费是按小时内验证次数做限制,也就是说如果套餐内的验证次数用完了就改为离线验证。假如成功率只有20%的话,也可以在一小时内发起大量验证将套餐内的次数耗尽,然后在剩下的时间里就只能使用离线模式了。不得不说极验这点做得很差劲,没有提供多少保护却只想着赚钱。
* 本文作者:manwu91,本文属FreeBuf原创奖励计划,未经许可禁止转载
manwu91
5 篇文章
等级: 4级
||
上一篇:探索如何防御恶意bot流量下一篇:htcap:一款实用的递归型Web漏洞扫描工具
这些评论亮了
delectate (3级)回复
{"is_event_trigger":false,"page_time_stamp":1500856028091,"page_fingerprint":"FLHOMIABCEIAAAAAAAAAAAAAAAAAAABC","previous":"http://www.geetest.com/package.html?ggd_previous_page_time_stamp=1500856018942","location":"http://www.geetest.com/exp.html","gt_id":"b46d1900d0a894591916ea94ea91bd2c","track":"M(.E()(M(*(((","first_act_time_stamp":1500856031660,"request_time_stamp":1500856031662,"insight":"161438!!180786!!CSS1Compat!!48!!-1!!-1!!-1!!-1!!5!!-1!!-1!!-1!!5!!5!!-1!!6!!1!!-1!!-1!!-1!!-1!!3!!-1!!-1!!13!!7!!-1!!-1!!-1!!-1!!-1!!0!!0!!1440!!437!!1456!!886!!en-US!!en-US%2Cen!!-1!!1!!24!!Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64%3B%20rv%3A54.0)%20Gecko%2F20100101%20Firefox%2F54.0!!1!!1!!1440!!900!!1440!!870!!1!!1!!1!!-1!!Win64!!1!!-8!!bf5b6cb8e1497a487c1a8e8c939bc469!!1b3a571d46616ce6f74d6881699266b1!!!!0!!-1!!0!!4!!Arial%2CArialBlack%2CCalibri%2CCambria%2CCambriaMath%2CComicSansMS%2CConsolas%2CCourier%2CCourierNew%2CGeorgia%2CHelvetica%2CImpact%2CLucidaConsole%2CLucidaSansUnicode%2CMicrosoftSansSerif%2CMSGothic%2CMSSansSerif%2CMSSerif%2CPalatinoLinotype%2CSegoePrint%2CSegoeScript%2CSegoeUI%2CSegoeUISymbol%2CTahoma%2CTimes%2CTimesNewRoman%2CTrebuchetMS%2CVerdana!!1500856031952!!-1%2C-1%2C23%2C0%2C0%2C0%2C0%2C24%2C100%2C0%2C96%2C642%2C95%2C4480%2C4701%2C7471%2C8511%2C8511%2C8531%2C-1","click":"","path":"","cookie":"29191c1b-f325-5f71-b425-dacfc33e3776","uuid":"29191c1b-f325-5f71-b425-dacfc33e3776","error_data":[],"appId":""}
极验点击行为验证post的内容(http://www.geetest.com/exp.html),看起来也有搞头。
)13(亮了
微凉 回复
http://jiyan.c2567.com/
简单过极验.直接接入.安心..
)6(亮了
发表评论已有 16 条评论
delectate (3级) 2017-07-24回复 1楼
{"is_event_trigger":false,"page_time_stamp":1500856028091,"page_fingerprint":"FLHOMIABCEIAAAAAAAAAAAAAAAAAAABC","previous":"http://www.geetest.com/package.html?ggd_previous_page_time_stamp=1500856018942","location":"http://www.geetest.com/exp.html","gt_id":"b46d1900d0a894591916ea94ea91bd2c","track":"M(.E()(M(*(((","first_act_time_stamp":1500856031660,"request_time_stamp":1500856031662,"insight":"161438!!180786!!CSS1Compat!!48!!-1!!-1!!-1!!-1!!5!!-1!!-1!!-1!!5!!5!!-1!!6!!1!!-1!!-1!!-1!!-1!!3!!-1!!-1!!13!!7!!-1!!-1!!-1!!-1!!-1!!0!!0!!1440!!437!!1456!!886!!en-US!!en-US%2Cen!!-1!!1!!24!!Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20×64%3B%20rv%3A54.0)%20Gecko%2F20100101%20Firefox%2F54.0!!1!!1!!1440!!900!!1440!!870!!1!!1!!1!!-1!!Win64!!1!!-8!!bf5b6cb8e1497a487c1a8e8c939bc469!!1b3a571d46616ce6f74d6881699266b1!!!!0!!-1!!0!!4!!Arial%2CArialBlack%2CCalibri%2CCambria%2CCambriaMath%2CComicSansMS%2CConsolas%2CCourier%2CCourierNew%2CGeorgia%2CHelvetica%2CImpact%2CLucidaConsole%2CLucidaSansUnicode%2CMicrosoftSansSerif%2CMSGothic%2CMSSansSerif%2CMSSerif%2CPalatinoLinotype%2CSegoePrint%2CSegoeScript%2CSegoeUI%2CSegoeUISymbol%2CTahoma%2CTimes%2CTimesNewRoman%2CTrebuchetMS%2CVerdana!!1500856031952!!-1%2C-1%2C23%2C0%2C0%2C0%2C0%2C24%2C100%2C0%2C96%2C642%2C95%2C4480%2C4701%2C7471%2C8511%2C8511%2C8531%2C-1","click":"","path":"","cookie":"29191c1b-f325-5f71-b425-dacfc33e3776","uuid":"29191c1b-f325-5f71-b425-dacfc33e3776","error_data":[],"appId":""}
极验点击行为验证post的内容(http://www.geetest.com/exp.html),看起来也有搞头。
亮了(13)
kindle (1级) 2017-07-24回复
@ delectate 这个我试过,他们图片更新很快
亮了(1)
idapro (3级) > _ 2017-07-24回复 2楼
6666666666666
亮了(1)
数月亮的孩子 (1级) 好好学习,每天回来膜拜大佬们并给自己加BUFF 2017-07-24回复 3楼
可以的
亮了(2)
IDE (1级) 2017-07-24回复 4楼
666
亮了(1)
kindle (1级) 2017-07-24回复 5楼
我自己照着你的怎么一直被吞,是不是我哪里写错了
亮了(1)
manwu91 (4级) 2017-07-24回复
@ kindle 总用时要超过13s
亮了(0)
frango 2017-07-26回复 6楼
极验验证就是一个吹逼产品,投资人都被骗了
亮了(3)
pcpopo 2017-07-26回复
@ frango 不是号称智能验证吗?红杉不会那么傻吧???
亮了(0)
ttitle 2017-07-26回复 7楼
大佬牛逼啊,66666,学习了
亮了(1)
fggh 2017-07-26回复 8楼
geetest日子难过了,刚升级就被破…
亮了(1)
极客小蜗牛 (1级) 这家伙太懒了,还未填写个人描述! 2017-07-28回复 9楼
亮了(4)
manwu91 (4级) 2017-08-08回复
@ 极客小蜗牛
亮了(1)
微凉 2017-09-07回复 10楼
http://jiyan.c2567.com/
简单过极验.直接接入.安心..
亮了(6)
templark (1级) 2017-10-16回复 11楼
刚开始学习爬虫,楼主能看一下代码吗,我想要爬去一下国家企业信息的东西
亮了(0)
GeekGao (1级) 这家伙太勤快了,还未填写个人描述! 2018-03-13回复 12楼
来试试同盾智能验证:https://www.tongdun.cn/product/antiFraud/smartVerify
亮了(0)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
manwu91
这家伙太懒,还未填写个人描述!
5
文章数
37
评论数
最近文章
利用虚拟机绕过安卓原生加密方案
2018.04.16
那些年绕过的反爬手段
2018.03.30
爬虫代理搭建与批量安装
2018.03.24
浏览更多
相关阅读
一个函数破解Geetest滑动验证码
Brup Suite应用分享之Web漏洞扫描通过HTTP参数污染绕过WAF拦截Facebook上一个有趣的CSRF【更新视频回播】FreeBuf公开课(直播课程):POWERSHELL内网渗透实例
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论