相信大家利用 Python 写的爬虫应该遇到过要输入验证码的尴尬局面,又或者写了个自动填充表单的小程序,结果就卡在了验证码上。
在ctf中有⼀一些题⽬目,本身有弱验证码识别绕过,那么我们怎么解决呢? 这⾥里里⽤用题⽬目
http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/ 做实例例讲解
首先[Python] 纯文本查看 复制代码
?
发现脚本运⾏行行报错,然后开始装tesseract-OCR 准备⼯工作: 编译环境: gcc gcc-c++ make(这个环境⼀一般机器器都具备,可以忽略略)
[Python] 纯文本查看 复制代码
?
依赖的包: autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel leptonica(1.67以上) autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel 可以通过yum安装:
[Python] 纯文本查看 复制代码
?
leptonica 需要源码编译安装参考资料料:
http://paramountideas.com/tesseract-ocr-30-and-leptonica-installation-centos-55-and-opensuse-113 http://www.leptonica.org/source/README.html 下载leptonica 包: http://www.leptonica.org/source/leptonica-1.68.tar.gz 解压后切换到leptonica-1.68 根⽬目录
[AppleScript] 纯文本查看 复制代码
?
tesseract安装:
依赖安装完毕后开始安装tesseract
下载tesseract-3.01 安装包: http://tesseract-ocr.googlecode.com/files/ tesseract-3.01.tar.gz
解压后切换到tesseract-3.01 根⽬目录
(如果在make时遇到类似strngs.h:1: error: stray ‘\357’ in program 的错误,请将
tesseract-3.01/ccutil/strngs.h
⽂文件转为ANSI 编码保存,再重新编译)
[Python] 纯文本查看 复制代码
?
tesseract英⽂文语⾔言包安装:
下载tesseract-3.01 英⽂文语⾔言包: http://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.01.eng.tar.gz 解压后将tesseract-ocr/tessdata 下的所有⽂文件全部拷⻉贝到/usr/local/share/tessdata 下 安装完毕. 测试⼀一下: 切换到解压后的tesseract-3.01 根⽬目录(这个⽬目录下有⼀一个⾃自带的phototest.tif 可以做测试⽤用) 命令⾏行行:
[Python] 纯文本查看 复制代码
?
输出:
[AppleScript] 纯文本查看 复制代码
?
这时应该在当前⽬目录⽣生成⼀一个phototest.txt ⽂文本⽂文件,内容就是phototest.tif 显示的⽂文字. 装完了了之后开始跑脚本
运⾏,等待得到结果