暴力破解原理與過程詳解

2022-07-16 06:24:10 字數 2596 閱讀 7452

顧名思義,暴力破解的原理就是使用攻擊者自己的使用者名稱和密碼字典,乙個乙個去列舉,嘗試是否能夠登入。因為理論上來說,只要字典足夠龐大,列舉總是能夠成功的!

但實際傳送的資料並不像想象中的那樣簡單——「 每次只向伺服器傳送使用者名稱和密碼字段即可!」,實際情況是每次傳送的資料都必須要封裝成完整的 http 資料報才能被伺服器接收。但是你不可能乙個乙個去手動構造資料報,所以在實施暴力破解之前,我們只需要先去獲取構造http包所需要的引數,然後扔給暴力破解軟體構造工具資料報,然後實施攻擊就可以了。

web暴力破解通常用在,已知部分資訊,嘗試爆破**後台,為下一步的滲透測試做準備。

http 中的responserequest是相對瀏覽器來說的。瀏覽器傳送request,伺服器返回response。

getpost:get放在url中,而post放在http的body中。

http_referer:是http中header的一部分,向瀏覽器傳送請求時,一般會帶上referer,告訴伺服器我是從哪個頁面鏈結而來,為伺服器處理提供一些資訊。

這裡我們使用dvwa滲透測試平台中的暴力破解模組來進行演示。

先使用任意賬號密碼嘗試登入,並同時使用firefox f12進行抓包分析。

這一步的作用是,收集構造http資料報所需要的引數,比如cookie、get/post、referer、提交得欄位名等。

可以看到cookie裡面除了 username 和 password 字段之外還有乙個 token,這個通常是用來防止csrf攻擊的。

收集到以上資訊之後,我們就可以構造用於攻擊的資料報。

需要用到的引數收集完畢之後,接下來就需要使用到爆破軟體,這裡我們先講乙個專用與爆破的軟體——bruter,之後會再介紹一款綜合的web類安全軟體 :

如下圖所示,這款軟體支援包括ftp、ssh在內的十多種不同應用場景的暴力破解。我們這裡是web登入的爆破,所以選擇web form:

點選協議右側的選項,將我們之前獲得的資訊輸入進去。

其實我們也可以直接在**一欄中輸入我們要攻擊的url,點選載入,它會自動將構造攻擊資料報所需要的資訊識別出來並填好,如果我們發現有問題或者有遺漏,也可以手動修改。

有些朋友可能要說,既然可以自動獲取相關引數,那為什麼我們還要花時間精力去手動收集資訊呢?其實之前的手動收集主要是幫助我們理解暴力破解的原理,正所謂知其然不夠,還要知其所以然。並且軟體自動獲取的引數也可能會出錯,我們可以再驗證一次。

接下來設定使用者名稱和密碼。使用者名稱可以使用字典,如果你知道使用者名稱是什麼,你也可以直接輸入字串,比如:admin。

密碼則有多種選擇,如果選擇字典選項,則需要載入我們自己事先準備好的字典(比如自己收集的弱口令字典),右側還可以設定大小寫、字元長度等:

ps:注意bruter字典路徑似乎不支援中文路徑,筆者這裡使用中文路徑會報錯。

如果選擇暴力破解選項,就是軟體使用自動生成字串進行攻擊,我們可以自定義使用到的字元種類、長度等:

接下來我們介紹另一款軟體webcruiser web vulnerability scanner,這是一款相對綜合的軟體,包括常見的sql注入、xss檢測等功能,其中的暴力破解模組也非常強大!

這款軟體自帶web介面,我們可以直接在url一欄中輸入攻擊**,並做一次任意使用者名稱密碼的登入提交,之手點選resend按鈕,可以看到已經自動對之前操作進行抓包:

之後在點選右側的bruter按鈕,會直接跳轉到bruter介面,同樣需要的引數都已經自動填好,設定好字典就可以開始破解了:

medusa 暴力破解

medusa 美杜莎 和hydra 九頭蛇 差不多 科普下 medusa是支援afp,cvs,ftp,http,imap,ms sql,mysql,ncp netware nntp,pcanywhere,pop3,postgresql,rexec,rlogin,rsh,smb,smtp auth v...

DVWA Brute Force(暴力破解)

本系列文集 dvwa學習筆記 分析 isset函式在php中用來檢測變數是否設定 該函式返回的是布林型別的值,即true false 可以看到,伺服器只是驗證了引數login是否被設定,沒有任何的防爆破機制,且對引數username password沒有做任何過濾,存在明顯的sql注入漏洞。方法一利...

作業(暴力破解)

基於單單表的暴力破解 首先先把攔截關一下 因為我們要讓他傳輸資料,沒必要攔截,而且就算是intercept is off 這也不影響我們的burpsuit找到它 然後開啟pikachu訓練靶場,先輸入乙個隨便的賬戶和密碼,然後可以在歷史裡找到位址是127.0.0.1的資料報,找到剛剛輸入的賬戶和密碼...