一、网站http://www.gsxt.gov.cn滑动验证码概述
二、极验验证码破解-抓包分析
三、极验验证码破解-搭建本地验证码服务
四、极验验证码破解-分析geetest.js,得到所需参数
五、极验验证码破解-Track的获取
六、极验验证码破解-获取背景图片及缺口距离d的计算
七、极验验证码破解-总结
参考文献
运行截图
2017.8.21 代码以上传,可供参考
https://github.com/FanhuaandLuomu/geetest_break
五、极验验证码破解-Track的获取
- Track的生成可以根据图片缺口的距离d,使用随机函数随机采样生成。比如d=120,则我们控制总拖动时间为t(t一般小于3s),则可以每很小的时间内(每次随机时间,如10ms)移动一小段随机距离,最后在时刻t时正好移动到d。但考虑人拖动会有先加速在减速的特点(或许还有其他特点),geetest的服务器可能会识别到时机器所为,我们很难找到人行为的轨迹特点并且难以模拟,因此生成轨迹不太可行(也许可行,但代价较大)。
- 我们提出另一种方法替代Track的生成,即手工事先存储备用Track。验证码图片总长大概250左右,由于我们已经实现了在Console中打印Track的js,因此我们可以多次刷新http://localhost:8000/页面,得到不同缺口位置的验证码,手动拖动至缺口处,保存Console中的Track。
- 经过试验发现,缺口位置大多停留在中间位置,并且拖动误差在3以内都可以接受。因此我们可以用当前位置d的Track来代替d-1和d+1的Track(如缺口位置120,则119和121的Track可以不用测试,直接使用120的Track)。这样大大减少了刷新页面获取Track的次数,我收集的Track列表如下: