淘宝验证码破解

最近这段时间,对淘宝验证码做了一次攻关,现在把攻关的一些思路跟大家分享。
淘宝验证码破解_第1张图片

1、触发验证码

要攻关,首先就要能够自发&可控的触发验证码,不然连调试的对象都没有。
知道如果触发之后,可以本地做个web服务,对外提供获取验证码的接口。

2、滑动验证码处理

淘宝的验证码是霸下团队开发的,网上搜到一些信息,但并不多,还算比较神秘。
验证码的生成基于几个重要参数:

  • 浏览器指纹
  • x5secdata
  • NCTOKENSTR
  • NCAPPKEY

浏览器指纹用于标识客户端的唯一性。在调试过程中会发现,在某个浏览器下做多次调试之后,验证码会趋向于识别失败,如果更换浏览器,识别又是正常的。对于修改浏览器指纹市面上有相当多的产品可以推荐,个人倾向于loginbox。
别的几个参数都是处理验证码不可缺的,都可以从验证码页面上提取。
验证码滑动过程中,会产生轨迹参数,在滑动成功后,会触发表单的异步提交,提交的参数中最重要的就是slidedata这个参数。有兴趣的同学可以去调试下js,比较繁琐,这里就不赘述了。

3、换取x5sec值

验证码验证后,服务端会向客户端写入一个x5sec的cookie,这个cookie有效期为1800秒。利用这个cookie就可以采集你想拿的数据。
在步骤2,我们需要去阻塞验证表单的提交,劫持需要提交的参数,持久化在本地,这样我们想使用x5sec的时候,用这些参数去换取就可以了。

4、总结

主要流程如下:
淘宝验证码破解_第2张图片
这里需要提几个点:
1、x5sec的值是有时效性的,没采集需求的时候,不用换取
2、采集的时候,如果使用多线程,每个线程分配一个x5sec,不要多个线程公用。
3、浏览器指纹的处理是关键,否则无法生成x5sec

你可能感兴趣的:(爬虫,python,爬虫,js,网络)