验证码识别&暴力破解
1. 前言
作为一名努力工作的渗透实习生,这段时间在处理渗透工作的时候发现,弱口令是进入网站最简单、最有效、危害重大的漏洞之一,但常常暴力破解用户名时会发现存在讨厌的验证码,让我们从而无法进行渗透工作。所以,这俩天写了几行代码可以简单的识别验证码并进行暴力破解,算是个人总结吧,大牛们绕过就好。
2. 准备工作 QQ图片20180808144134.jpg示,在找回密码处可以遍历用户名,使用Burp抓包从返回包中可以看到用户名是否存在。但同时也可以看到有验证码的存在,我们无法进行暴力破解,所以我们需要识别验证码并加入字典进行暴力破解
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!图2.1
3. Python程序
3.1 整体思路
3.1.1 访问该网站页面,爬取页面存在的验证码信息和跳转的地址(点击下一步访问的地址)。
3.1.2 识别验证码,加入验证码和用户名字字典请求访问。
3.1.3 从放回包中判断是否暴力破解成功,打印出存在的用户名。
3.2 python识别验证码
将验证码下载到本地,命名为code.jpg
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!from PIL import Image
import pytesseract
python中使用Image,pytesseract识别存在的验证码
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!成功识别出存在的验证码 7KKV
3.3 爬取验证码信息和跳转地址
3.3.1 访问该网址链接,使用firebug查看页面源代码发现存在的验证码地址和跳转的地址,我们需要加载用户名字典和识别出来的验证码进行访问。
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材! 两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!3.3.2 Python识别验证码和下一次请求的地址
使用requests模块进行第一次访问,通过查看源代码,进行正则匹配得到验证码地址和跳转的地址,将验证码保存到本地,识别验证码并返回
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!3.3.3 加载用户名字典,进行暴力破解
定义用户字典函数,返回users列表
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!抓包分析数据包,为post请求
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!通返回包中,如果用户名错误或验证码错误,会出现titleNoteError字段,如果正确则没有该字段。
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!编写暴力破解模块
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!加入多线程,优化破解速度
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!完整代码
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!存在的用户名
两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!
网友评论