本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于腾讯云 作者:咸鱼学Python
( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
今日网站
aHR0cHM6Ly9idWxsZXRpbi5jZWJwdWJzZXJ2aWNlLmNvbS8=
这个网站是比较简单的滑块验证码,没有涉及指纹,轨迹以及 JS 的加密,但是有助于进一步了解滑块验证码的具体实现和分析流程
所以作为 Crack Captcha系列的第一篇,希望能对想要学习验证码分析的朋友带来一些帮助
概念普及
在开始我们老三样套路之前先搞一波基础概念普及
Captcha全程是 Completely Automated Public Turing test to tell Computers and Humans Apart
是一种区分用户是机器或人类的公共全自动程序,既然是一种程序,那只要摸清套路我们也可以用全自动化的套路应对。
目前市面上的验证码类型常见的有数字字符验证码,滑动验证码和点选验证码。
具体的形式我这里截取一些常见的形式展示一下,其他形式的大家可以自行搜索。
大致的形式就是上面这样的,每一种都有应对的方案,之前也写过一篇文章作为介绍,这里不重复叨叨,感兴趣的朋友点下方蓝字,直达原文
https://mp.weixin.qq.com/s?__biz=MzIwNDI1NjUxMg==&mid=2651262297&idx=1&sn=d77d0c4da862f612af913e38e31414ff&chksm=8d314936ba46c0207aafae9a2f8e51558c58e71ebfe1c8c27e42b3b34ec9502fd76e78c121a6&scene=21#wechat_redirect
抓包分析
凑完字数,这里看下我们需要分析的网站验证码
打开网站,研究一下可以看到页面需要滑动验证之后才可以出现列表页的内容
清掉缓存,重新抓包,大致分析了一下大致有下面这几个请求是和验证码相关的
def pixel_is_equal(image1, image2, x, y):
"""
判断两张图片的像素是否相等,不想等即为缺口位置
:param image1:
:param image2:
:param x: x坐标
:param y: y 坐标
:return:
"""
# 取两个图片的像素点
pixel1 = image1.load()[x, y]
pixel2 = image2.load()[x, y]
threshold = 60 # 像素色差
if abs(pixel1[0] - pixel2[0]) < threshold and abs(pixel1[1] - pixel2[1]) < threshold and abs(
pixel1[2] - pixel2[2]) < threshold:
return True
else:
return False
带上这个比对的结果获取左侧到这个位置的距离就可以了。
今天的文章到这里就结束了,最简单的滑块分析结束,我们下次再见~