极验滑动验证码破解分析

来自知乎文章
极验验证码验证的是鼠标拖动滑块时的鼠标轨迹,完整步骤就像这样:先向目标网站请求一个id,然后拿着id去geetest服务器请求图片;接下来就开始拖动滑块,拖动的过程会被js记录下来;松开鼠标后会向geetest发送一个验证的请求,请求包含加密后的鼠标轨迹、拖动距离、所用时间等信息,如果成功,返回一个秘钥,用来向目标网站进行下一个请求。

那我们需要做什么呢?

  1. 向目标网站请求id
  2. 用id去geetest请求图片
  3. 合成图片得出拖动距离
  4. 生成鼠标轨迹
  5. 用Python把加密的方法实现一遍
  6. 发送加密后的数据

思路:

前两个都还好说

第三个、图片是混淆之后的图片,需要按着他的规则把相应的块换换位置就可以得到完整的图片了;缺口位置:每张图片各转为一个Python列表,每个值对应图片上每一列像素值的和,然后对两个列表进行比较(缺口的位置和所需要拖动的距离不相同,有一个固定的差)

第四个、轨迹生成有许多方法,1.找找规律,写个循环直接生成。如果写的不好影响成功率。2.找一些样本,然后随机选一个,根据自己需要拖动的距离按比例方法缩小23333

第五个、找到相应的js代码然后用Python实现一遍(体力活费时间,还好我写好了是吧)。。。或者可以调用v8


在验证码分析过程中我搭建一个简易的后台。极验有开放的Python demo,flask和django的都有,我用的flask。滑动成功之后,通过js把加密之前的鼠标轨迹等信息发送到后台,后台存入数据库。我又在页面上加了一个图表,可以把自己的轨迹显示出来,也可以把后台生成的轨迹显示出来,看看自己生成的轨迹和自己拖动的轨迹有什么区别,不过是否通过还是得发到极验后台去了。

最后放一张测试时搭建的后台。渣前端):
1133748-20170427145316100-994852422.png

2017年3月9日更新:
极验的验证码更新挺快的,用这种方法去分析请求工作量挺大的,还是控制浏览器来的稳定,当然了,以前研究的东西正好可以用在这里,就像距离计算、轨迹生成之类的。

转载于:https://www.cnblogs.com/nail/p/6774242.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值