網絡安全入門之 Burp Suite 暴力破解 DVWA Brute Force Low

1. 背景

最近參加了2020騰訊安全平臺部極客技術挑戰賽,獲得了一次騰訊綠色通道面試的機會,因此我想要藉此機會補充一下網絡安全方面的知識,於是就從基礎的靶場 DVWA (Damn Vulnerable Web Application) 開始刷起,這一篇是關於暴力破解安全等級爲 Low 的賬號密碼的內容。

2. 準備工作

2.1. 靶場環境

首先配置靶場環境,如果想要在本地配置靶場環境,可以參考github上的教程,這裏推薦大家直接使用vulnspy提供的在線的靶場環境

如圖1所示,點擊右上角的 Start To Hack 使用GitHub賬號登陸,即可創建靶場環境。

Figure 1. 創建靶場環境 \text{Figure 1. 創建靶場環境}

創建環境以後,在 LABS 標籤下,點擊 Target Address 下的鏈接即可進入環境,一次創建有效期爲 2 個小時,結束後可以再次創建,最多能夠同時創建5個實驗環境。

Figure 2. 進入靶場環境 \text{Figure 2. 進入靶場環境}

進入頁面以後,賬號密碼都是默認的,點擊登陸。

Figure 3. 登陸 \text{Figure 3. 登陸}

拉到頁面底部,點擊創建數據庫。

Figure 4. 創建數據庫 \text{Figure 4. 創建數據庫}

創建完成後,會回到登陸頁面要求重新登陸,再次登陸即可。

默認的難度是 impossible,基本沒有安全漏洞,我們要點擊左邊的 DVWA Security 設置難度。

Figure 5. 進入設置難度頁面 \text{Figure 5. 進入設置難度頁面}

頁面上也有相應的難度說明,我們先從 Low 的難度開始訓練。

Figure 6. 設置難度爲Low \text{Figure 6. 設置難度爲Low}

點擊左邊的Brute Force標籤,我們就進入到密碼破解的訓練頁面了。

Figure 7. Brute Force \text{Figure 7. Brute Force}

2.2. 安裝破解工具

下載 Burp Suite Community 免費版本 ,圖形界面安裝。下載有點慢,Mac 系統的同學可以從百度網盤下載。

鏈接:https://pan.baidu.com/s/1fXM7uKv2lE5KoEDgCVnazQ 密碼:x7sj

安裝完成以後,就可以開始我們的破解了。

3. 破解過程

3.1. 代理請求

首先設置瀏覽器的代理,在Safari中操作路徑爲爲偏好設置 - 高級 - 代理 - 更改設置,設置HTTP代理,將代理服務器地址設置爲127.0.0.1:8000

Figure 8. 代理 \text{Figure 8. 代理}

Proxy - Option中的設置保持一致。

Figure 9. Proxy - Option \text{Figure 9. Proxy - Option}

我們再對 Burp Proxy 進行一些瞭解。內容參考自《Web安全攻防:滲透測試實戰指南》中對Burp Proxy的介紹。

Burp Proxy 是利用 Burp 開展測試流程的核心,通過代理模式,可以讓我們攔截、查看、修改所有在客戶端與服務端之間傳輸的數據。

Burp Proxy 的攔截功能主要由 Intercept 選項卡中的 Forward、Drop、Interception is on/off和Action 構成,它們的功能如下所示。

  • Forward 表示將攔截的數據包或修改後的數據包發送至服務器端。
  • Drop 表示丟棄當前攔截的數據包。
  • Interception is on 表示開啓攔截功能,單擊後變爲Interception is off,表示關閉攔截功能。
  • 單擊Action按鈕,可以將數據包進一步發送到Spider、Scanner、Repeater、Intruder等功能組件做進一步的測試,同時也包含改變數據包請求方式及其body的編碼等功能。

打開瀏覽器,輸入需要訪問的URL並按回車鍵,這時將看到數據流量經過Burp Proxy並暫停,直到單擊 Forward 按鈕,纔會繼續傳輸下去。如果單擊了 Drop 按鈕,這次通過的數據將丟失,不再繼續處理。

Burp Suite 攔截的客戶端和服務器交互之後,我們可以在Burp Suite的消息分析選項中查看這次請求的實體內容、消息頭、請求參數等信息。Burp有四種消息類型顯示數據包:Raw、Params、HeadersHex

  • Raw 主要顯示Web請求的raw格式,以純文本的形式顯示數據包,包含請求地址、HTTP協議版本、主機頭、瀏覽器信息、Accept可接受的內容類型、字符集、編碼方式、cookie等,可以通過手動修改這些信息,對服務器端進行滲透測試。
  • Params 主要顯示客戶端請求的參數信息,包括GET或者POST請求的參數、cookie參數。可以通過修改這些請求參數完成對服務器端的滲透測試。
  • Headers 中顯示的是數據包中的頭信息,以名稱、值的形式顯示數據包。
  • Hex 對應的是Raw中信息的二進制內容,可以通過Hex編輯器對請求的內容進行修改,在進行00截斷時非常好用。1

3.2. 攔截請求

接下來我們要開始攔截請求,在 Burp Suite 點擊Intercept is off 中打開請求攔截。

Figure 10. 請求攔截 \text{Figure 10. 請求攔截}

在靶場的Brute Force頁面中輸入任意的賬號密碼,點擊登陸。在 Burp SuiteProxy - Intecept 界面中顯示攔截成功,點擊 Intercept is on 關閉攔截。

Figure 11. 攔截成功 \text{Figure 11. 攔截成功}

在Http History中找到帶賬號密碼的請求。

Figure 12. Http History \text{Figure 12. Http History}

全選後,右鍵選擇 Send To Intruder

Figure 13. Send To Intruder \text{Figure 13. Send To Intruder}

Intruder - 2 - Position 界面中,將用戶名和密碼以外的變量去除,選擇 Attack typePitchfork

Figure 14. Intruder \text{Figure 14. Intruder}

各種模式的區別可以參考《Web安全攻防:滲透測試實戰指南》中的內容,具體如下。

  • Sniper模式使用單一Payload組。它會針對每個位置設置Payload。這種攻擊類型適用於對常見漏洞中的請求參數單獨進行Fuzzing測試的情景。攻擊中的請求總數應該是position數量和Payload數量的乘積。
  • Battering ram模式使用單一Payload組。它會重複Payload並一次性把所有相同的Payload放入指定的位置中。這種攻擊適用於需要在請求中把相同的輸入放到多個位置的情景。請求的總數是Payload組中Payload的總數。
  • Pitchfork模式使用多個Payload組。攻擊會同步迭代所有的Payload組,把Payload放入每個定義的位置中。這種攻擊類型非常適合在不同位置中需要插入不同但相似輸入的情況。請求的數量應該是最小的Payload組中的Payload數量。
  • Cluster bomb模式會使用多個Payload組。每個定義的位置中有不同的Payload組。攻擊會迭代每個Payload組,每種Payload組合都會被測試一遍。這種攻擊適用於在位置中需要不同且不相關或者未知輸入攻擊的情景。攻擊請求的總數是各Payload組中Payload數量的乘積。1

3.3. 填裝彈藥

要通過暴力來破解DVWA Brute Force Low,遍歷所有符號的排列組合是比較低效的,因爲每種情況並非等可能地出現,人們爲了要記憶自己的密碼,一般都會遵循某些規律,比如在密碼中包含姓名、生日等等字段。所以我們就需要一份包含高頻用戶名和密碼的詞典作爲彈藥,從而對系統進行轟炸。

我選擇的是Github上的SecLists項目,上面有許多用戶名和密碼,有些按照頻率進行了排序,更加方便我們使用。

我也選了一些放在了百度網盤上。

鏈接:https://pan.baidu.com/s/1NbOkmIbhBXOvejwSyoCF2A 密碼:74gz

在這裏我使用的是 xato-net-10-million-passwords-dup.txtxato-net-10-million-usernames-dup.txt 兩份基於頻率排序的詞典。

Payload 界面通過Load按鈕將詞典引入,Payload set 爲 1 時引入的是賬號Payload set 爲 2 時引入的是密碼

Figure 15. Payload \text{Figure 15. Payload}

3.4. 設置崗哨

填裝好彈藥以後,我們還需要知道在什麼情況下破解算成功了。我們先隨意填寫一次賬號密碼,發現當用戶名或密碼錯誤時,頁面會顯示Username and/or password incorrect. 那麼當頁面沒有顯示這條信息時,說明我們破解成功了。

Figure 16. Incorrect Page \text{Figure 16. Incorrect Page}

所以我們要在Intruder - 2 - Option - Grep Match 中添加 incorrect 關鍵詞,並且勾選Flag

Figure 17. Grep Match \text{Figure 17. Grep Match}

3.5. 開始攻擊

接下來,在 Payload 界面點擊 Start Attack 開始攻擊。點擊後會有一個提示說免費版的攻擊時長受限,點 OK 即可。

Figure 18. Attack \text{Figure 18. Attack}

很快,我們就發現了有一條攻擊請求的 Response 中沒有incorrect 關鍵詞。

Figure 19. Sign \text{Figure 19. Sign}

查看該次攻擊的賬號密碼,發現其賬號爲 admin,密碼爲password。到此,我們就成功地通過暴力方式破解了DVWA Brute Force 安全等級爲 Low 的密碼。

Figure 20. Password \text{Figure 20. Password}

4. 參考文獻

[1] 徐焱, 李文軒, 王東亞. Web 安全攻防:滲透測試實戰指南 [M]. 北京: 電子工業出版社, 2018.


聯繫郵箱[email protected]

CSDNhttps://me.csdn.net/qq_41729780

知乎https://zhuanlan.zhihu.com/c_1225417532351741952

公衆號複雜網絡與機器學習

歡迎關注/轉載,有問題歡迎通過郵箱交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章