本文作者:Junsec(Ms08067实验室Python渗透小组成员)
验证码生成分为两种:
1.本地js生产验证码。
2.请求url刷新验证码,代码根据这种情况编写。.
功能简介:
-u 用户名
-t 后台地址
-p 字典地址
-c 验证码地址
-k 使用云打码平台识别验证码,默认使用为pytesseract识别验证码
用法:
python test_captche.py -u admin -t http
://172.13.98.57/login.php -c
http://172.13.98.57/inc/showvcode.php -p src.txt -k
思路分析:
1.创建cookie容器存放cookie,将cookie保存到全局变量,保存验证码到本地识别。
2. 定义参数key,如果使用参数为云打码平台,一键识别函数定义用户名和密码,识别本地验证码,返回识别的验证码;否则导入pytesseract库识别验证码,通过函数imag_to_string识别本地验证码。
3.定义随机请求头,使用random.choice随机选择请求头,加上1到2秒的延迟,防止waf或者检测设备判断为爬虫,或者爆破。
4.F12查看登陆失败的错误提示,判断是否爆破成功,也可以根据登陆成功的响应码判断是否登陆成功,如302跳转。
5.读取字典,调用函数request_post开始发送post请求,爆破后台网站。
6.读取外部参数,如果username和passfile都不为空,开始读取字典,爆破后台。
7.效果图
-u 用户名
-t 后台地址
-p 字典地址
-c 验证码地址
-k 是否使用云打码平台识别验证码
总结:1.请求验证码地址获取cookie。
2.识别验证码。
3.开始爆破,发送post请求。
代码写得不太完善,测试结果也不太理想,因为随机延迟,效率太低了,自己心目中的代码,应该加上ip代理池和多线程绕过防护,请求表单使用模块自己抓取,不用每次手动加上,密码读取应该加上密码喷洒,可以使用同一密码对多个用户爆破;下次在重写下,代码更加完善。
https://github.com/AdministratorGithub/baop
本文分享自 Ms08067安全实验室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!