iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
Security

嘗試使用OWASP ZAP與DVWA探索常見 Web 漏洞系列 第 14 篇

DVWA 實作:Brute Force(暴力破解漏洞)原理與防禦機制

  • 分享至 

  • xImage
  •  

在前面的章節中,我們介紹了各種利用語法與邏輯漏洞的攻擊手法。今天我們要介紹一個看似最簡單原始、卻極為常見的攻擊管道——Brute Force(暴力破解攻擊)。

  • 什麼是 Brute Force 攻擊?

Brute Force是指攻擊者透過自動化程式或手動方式,嘗試各種可能的帳號與密碼組合,直到成功猜中並登入系統為止。

常見的衍生攻擊型態包含:

1.Dictionary Attack:利用包含常見密碼(如 123456、admin、password 等)的密碼庫進行高效率匹配。

2.Credential Stuffing:利用其他網站洩露的帳號密碼組合,嘗試登入目標網站。

3.Password Spraying):對大量帳號嘗試極少數的常用密碼(如 P@ssword2026),藉此避開單一帳號鎖定機制。

  • DVWA 實作與觀察
  1. 實驗步驟

1.進入左側選單的 Brute Force 頁面。
https://ithelp.ithome.com.tw/upload/images/20260928/20179312aWZ0QAe5OT.png

2.設定 Username 為常見的預設帳號 admin。
在 Password 欄位依次嘗試輸入常見弱密碼:

嘗試 password ➔ 顯示 Username and/or password incorrect.
https://ithelp.ithome.com.tw/upload/images/20260928/20179312CwSAWuByYs.png
嘗試 admin ➔ 顯示 Username and/or password incorrect.
嘗試 123456 ➔ 成功登入! 畫面上顯示
https://ithelp.ithome.com.tw/upload/images/20260928/201793125WuXJlzBYz.png

  1. 實驗觀察與觀察到的問題
    在這次測試中,我們發現了以下重大安全隱患:

1.完全沒有次數限制:系統允許使用者無限制地發送登入請求,不會鎖定帳號或IP。

2.沒有延遲機制:不論輸入失敗多少次,系統回應速度都極快,這給了自動化爆破程式極大的攻擊優勢。

3.未採用安全驗證:缺乏CAPTCHA(驗證碼)或雙重驗證機制,無法區分發送請求的是人類還是程式腳本。

  • 漏洞成因分析(Code Review)

檢視 DVWA Low 安全等級的後端原始碼:
if( isset( $_GET[ 'Login' ] ) ) {
$user =$_GET[ 'username' ];
$pass =$_GET[ 'password' ];

// 直接查詢資料庫驗證帳密
$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysqli_query($GLOBALS["___mysqli_ston"],  $query);

if( $result && mysqli_num_rows($result ) == 1 ) {
    echo "<p>Welcome to the password protected area {$user}!</p>";
} else {
    echo "<pre><br />Username and/or password incorrect.</pre>";
}

}
問題癥結點:
1.後端只做單純的資料庫比對,沒有記錄任何登入失敗的紀錄(Fail Count)。

2.未使用 Session 或 Redis 記錄連續失敗次數。

3.傳輸敏感資料(密碼)時使用了 GET 請求,導致密碼被暴露在 URL 與伺服器 Log 中。

  • 如何正確防禦 Brute Force 攻擊?

1.實施速率限制(Rate Limiting)與帳號鎖定(Account Lockout):
同一IP或帳號在短時間內(如 1 分鐘)連續失敗5次時,暫時鎖定該帳號或IP 15~30 分鐘。

2.導入CAPTCHA(驗證碼機制):
當系統偵測到連續失敗幾次後,要求使用者輸入reCAPTCHA或進行圖形驗證,阻斷自動化腳本。

3.多因素驗證(MFA / 2FA):
即使密碼被猜中,攻擊者若無法取得手機一次性動態密碼,仍無法登入系統。

4.強密碼政策(Password Policy):
要求使用者設定包含大小寫字母、數字與特殊符號的強密碼,並禁止使用已知洩漏的弱密碼。


上一篇
DVWA 實作:File Inclusion原理與路徑穿越攻防
下一篇
Web 資安觀念篇:圖形驗證碼(CAPTCHA)的演進與常見設計漏洞
系列文
嘗試使用OWASP ZAP與DVWA探索常見 Web 漏洞 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言