DVWA全級別之Brute Force(暴力破解)


Brute Force

Brute Force,即暴力(破解),是指黑客利用密碼字典,使用窮舉法猜解出用戶口令

首先我們登錄DVWA(admin,password),之后我們看網絡是否為無代理,;

 

 

 

 

 

 

 

 確認網絡為無代理之后,打開burpsuite

 

 

 

 

 然后我們將DVWA網絡改為手動代理,

 

 

 完成之后在進行操作。

 

 

Low

查看服務器端核心代碼;

 

 

 

 

可以看到,服務器只是驗證了參數Login是否被設置(isset函數在php中用來檢測變量是否設置,該函數返回的是布爾類型的值,即true/false),沒有任何的防爆破機制,且對參數username、password沒有做任何過濾,存在明顯的sql注入漏洞

 

 方法一,爆破利用burpsuite

 第一步抓包,

 

 

 

第二步,ctrl+I將包復制到intruder模塊,因為要對password參數進行爆破,所以在password參數的內容兩邊加$

 

 

 

第三步選中Payloads,載入字典,點擊Start attack進行爆破

 

 

 

 

 嘗試在爆破結果中找到正確的密碼,可以看到password的響應包長度(length)“與眾不同”,可推測password為正確密碼,手工驗證登陸成功。

 

 

 

 

 

方法二,手工SQL注入

 

Username :admin’ or ’1′=’1    

 Password為空  注入成功;

 

 

 

 

 

Username :admin’ #

Password :(空)  注入成功

 

 

 

 

 

 

 

 

Medium

查看服務器端核心代碼,

 

 

 

 相比Low級別的代碼,Medium級別的代碼主要增加了mysql_real_escape_string函數,這個函數會對字符串中的特殊符號(x00,n,r,,’,”,x1a)進行轉義同時,$pass做了MD5校驗,杜絕了通過參數password進行sql注入的可能性

 

使用burpsuite進行破解(步驟與LOW一樣)

 第一步抓包;

 

 

 

 

第二步,ctrl+I將包復制到intruder模塊,因為要對password參數進行爆破,所以在password參數的內容兩邊加$

 

 

 

 

 

第三步選中Payloads,載入字典,點擊Start attack進行爆破

 

 

 

 嘗試在爆破結果中找到正確的密碼

 

 

 

 

 

 

High

查看服務器端核心代碼,

 

 

 

 

High級別的代碼加入了Token,可以抵御CSRF攻擊,同時也增加了爆破的難度

每次服務器返回的登陸頁面中都會包含一個隨機的user_token的值,用戶每次登錄時都要將user_token一起提交。服務器收到請求后,會優先做token的檢查,再進行sql查詢。

High級別的代碼中,使用了stripslashes(去除字符串中的反斜線字符,如果有兩個連續的反斜線,則只去掉一個)、 mysql_real_escape_string對參數username、password進行過濾、轉義,進一步抵御sql注入。

 

 通過抓包,可以看到,登錄驗證時提交了四個參數:username、password、Login以及user_token

 

 

 

 發現增加了user_token參數,所以爆破要選擇兩個參數來進行,先將請求發送到intruder

 

 

 

 

 設置兩個參數 passworduser_token為變量,攻擊類型選擇pitchfork,意思是草叉模式(Pitchfork ——它可以使用多組Payload集合,在每一個不同的Payload標志位置上(最多20個),遍歷所有的Payload

 

 

 

 

 設置參數,在option選項卡中將攻擊線程thread設置為1,因為Recursive_Grep模式不支持多線程攻擊,然后選擇Grep-Extract,意思是用於提取響應消息中的有用信息,點擊Add,如下圖進行設置,最后將Redirections設置為Always

 

 

 

 

 

 

 

 寫上value=’  點擊刷新相應信息   服務器返回的token選中(即value后面,表示每次從響應中獲取該值)

 

 

 

 將這個token 值先記錄下來

a5f168e741600adb87c761ac45d016dd

然后設置payload,設置第一個參數載入字典,第二個參數選擇Recursive grep,然后將options中的token作為第一次請求的初始值。

 

 

 

 

 

 

 

 點擊start attack攻擊爆破,結果成功爆破

 

 

 

 

 

 


免責聲明!

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



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