【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本

京东滑块验证码爆破---纯js非selenium方式 java版本

  • 接下来一步步分析jd的滑块验证码
  • 你在本篇文章可以学习到什么?
  • 分析正文
    • 爬虫思路
    • 回到正题

接下来一步步分析jd的滑块验证码

声明:
本文章纯属技术探讨学习
防止不法用途
轨迹代码为旧版本需要自行优化

github地址
欢迎start

你在本篇文章可以学习到什么?

  • 滑块分析的思路(纯js调用,非selenium)
  • java爬虫常用的方法
  • java调用js引擎的方法
  • 如何分析一个网页,对网页进行调试

首先看一下结果(成功率还是非常的高)

【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本_第1张图片

分析正文

爬虫思路

首先说一下我对爬虫的思路。

分析的过程主要是一个控制变量的过程,不断减少影响的因素,这样就能出得出分析的结果

看一下jd登录页面的

有一个请求是只要接触页面就不断发送的

在这里插入图片描述

https://seq.jd.com/jseq.html请求

去除这个请求,整个滑块过程一共只有三个请求

分别是

  • https://iv.jd.com/slide/g.html
  • https://iv.jd.com/slide/s.html

可以看到g请求是用来获取图片的base64编码的。

那s请求就是验证图片验证码的一个请求了。

非常清晰明了。

那问题来了。

jseq请求有用吗?

做什么用?

是不是进行验证的关键请求

当然我也不知道?

但我们可以进行测试

这里就要用到其他的工具进行测试了

相信大家都回有Fiddler这个工具,没有的话青花瓷也可以。

1、打开Fiddler

2、拦截jseq请求

对就是这么简单!

不清楚请求的是否起作用,我们就将它拦截不让他进行请求。

我们发现滑块验证照样通过了。

这样我们减少了一个分析的请求

减少了一个爬虫影响的因素。

就是这样不断减少因素

最后再构造需要构造的请求即可完成一个爬虫

回到正题

g请求我们上篇文章已经有分析过了

【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本_第2张图片

我们现在看一下s请求。也就是验证的请求。
首先Get请求
参数在url后面

【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本_第3张图片
参数非常多

我们一个个分析

d:做过滑块的应该很容易看出d就是轨迹的加密密文。比较长且是乱码,一般是一个数组分别为 x,y,t 加密的结果

c:我们通过浏览器的全局搜索、是每个验证码的唯一的id(每个验证码不同,用于服务器去识别哪个验证码)

剩下的基本都是可以写死 或者是用户名(o)这些都是可以全局搜索通过分析得出的

我们看一下js的处理

火狐浏览器有一个
【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本_第4张图片

堆栈跟踪

点一下请求

第二个就是加密的过程

【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本_第5张图片

打个断点分析一下

【验证码识别】(二)京东滑块验证码爆破---纯js非selenium方式 java版本_第6张图片
d加密的果然是一串轨迹,我们后续需要自己构造这一段数组

后面就是简单的扣出js代码 然后放入java引擎执行

代码在git上,如果有帮助到你,欢迎start
github地址
本文章纯属技术探讨学习
防止不法用途
轨迹代码为旧版本需要自行优化

你可能感兴趣的:(滑块验证码,java)