前言
我们后台爆破的时候经常会遇到验证码,那我们常见的手法可以用以下方法突破:
1、查看验证码是否有逻辑漏洞,从而绕过验证码认证 2、识别验证码
实操
这次我们讲利用tesseract进行验证码识别。
根据wiki可以编写下列demo: - import requests
- import pytesseract
- from PIL import Image
- import os
- for i in range(1,20):
- image = "http://dxqf.jx163.com/Management/Spring/Page/Application/ImageRandCode.jpg"
- image_image = open('image.jpg','w')
- image_content = requests.get(image).content
- image_image.write(image_content)
- image_image.close()
- image3 = Image.open('image.jpg')
- text = pytesseract.image_to_string(image3)
- print text
复制代码运行结果: 然后就可以把获取到的验证码带入到爆破的数据包中即可。
当然,我们利用os来执行命令,还可以识别中文,demo:
- import requests
- import pytesseract
- import os
- while True:
- image = "http://dxqf.jx163.com/Management/Spring/Page/Application/ImageRandCode.jpg"
- image_image = open('image.jpg','w')
- image_content = requests.get(image).content
- image_image.write(image_content)
- image_image.close()
- os.system('tesseract chinese.png chinese -l chi_sim')
- result = open('chinese.txt','r')
- print result.readline()
复制代码 (-l参数指定语言包)
(这里需要到现在下载中文语言包:https://github.com/tesseract-ocr/tessdata 放到tesseract目录里)
运行如图:
下篇预告:利用建模训练进行验证码识别。
|