Python编写暴力破解模块,破解验证码!

两种方式,Python编写暴力破解模块、算法破解验证码,视频教材!

验证码识别&暴力破解

1. 前言

作为一名努力工作的渗透实习生,这段时间在处理渗透工作的时候发现,弱口令是进入网站最简单、最有效、危害重大的漏洞之一,但常常暴力破解用户名时会发现存在讨厌的验证码,让我们从而无法进行渗透工作。所以,这俩天写了几行代码可以简单的识别验证码并进行暴力破解,算是个人总结吧,大牛们绕过就好。

2. 准备工作

在渗透测试中我们需要收集一些有用的信息,比如网站存在的用户名,如图2.1所示,在找回密码处可以遍历用户名,使用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编写暴力破解模块、算法破解验证码,视频教材!

猜你喜欢

转载自blog.csdn.net/qq_41841569/article/details/81704001