关于验证码绕过和识别的一些经验之谈

今天闲来无事,就聊一聊关于验证码绕过和验证码识别的一些小经验!
验证码能做些什么?验证码可以有效防止爬虫和一些黑客爆破,不要以为只要有了验证码,就可以万事无忧了!

1:最弱智的一种验证码 有些验证码直接不鸟他,就是不填写反而可以直接绕过!
2: 携带cookie 绕过 比如ecshop的验证码,当输入错误的时候,图片不会自动刷新,那么这一种情况,就可以尝试携带cookie绕过!

3:当输入错误的时候,页面返回,验证码自动刷新了,这样尝试绕过验证码会不太方便,比如如下图


 

当点击登陆之后,验证码会自动刷新,当然是依赖前端js刷新的

如果用插件禁用js测试的话,登陆按钮又不能使用!

这时候我想到一个好办法可以使用 Adblock Plus这个火狐插件,阻止图片二次加载,这样就可以防止刷新session ,第一次提交之后,抓包,可以放进爬虫了!




也算是一种技巧了!


如果实在验证码不能绕过,就要开启爆破之路了,在这里我极力推荐偶然间发现的一款验证码识别软件,貌似作者已经不再更新了

伏宸验证码识别工具 VerifyReader-1.1

这款通用的验证码识别工具,最大的亮点就是可以通过简单的端口监听,融合到所有语言所写的软件中




部分使用和说明截图如下:







识别效果如下:




以下是用python来调用工具接口的示例

#! /usr/bin/env python
#coding=utf-8
import urllib2
from socket import *

opener = urllib2.build_opener()
opener.addheaders.append(('Cookie', 'ASP.NET_SessionId=jcrsf1naghsvtutve42rgail'))
h = opener.open("http://www.bugscaner.com/演示网站")
str = h.read()                      #获取验证码
s = socket(AF_INET,SOCK_DGRAM);
s.sendto(str,('localhost',1234))   #将获取到的验证码发送给识别程序
code = s.recvfrom(65500)            #接受识别出来的验证码
print(code)


稍微复杂点的验证码,本工具也可以实现自己训练字库,强烈推荐本工具!  先写这么多了,以后想起来了什么 再更新

下载地址
验证码识别工具下载


本文章为 www.bugscaner.com 原创文章,转载请注明出处!

您可能还会对下面的文章感兴趣: