iT邦幫忙

2025 iThome 鐵人賽

DAY 0
0
Security

Web 攻防實驗 — 使用 DVWA 與 Kali Linux 的攻防學習實驗系列 第 4

Day 4 — 認識 DVWA 的登入系統 & 基礎功能

  • 分享至 

  • xImage
  •  

一、今日目標:

  1. 熟悉 DVWA 的介面與常用模組(SQLi、XSS、CSRF、Command Injection 等)。
  2. 了解 DVWA 的登入流程、預設帳號/密碼、session/cookie 處理方式與安全等級設定。
  3. 找出 DVWA 的設定檔(config.inc.php)與資料庫結構(users table),觀察明文/雜湊儲存方式。
  4. 使用 Burp 攔截登入請求,觀察 POST 資料、cookie 與 session ID 的變化。
  5. 擬定日後要測試的攻擊面(例如登入繞過、Session Fixation、弱密碼測試)。

二、背景說明:
登入系統是應用程式中最關鍵的安全邊界之一:若身份驗證被繞過或 Session 管理不當,攻擊者就可能取得未授權存取。DVWA 的登入模組設計成便於練習,透過觀察如何接收帳密、建立 session 與設定 cookie,可以更直觀理解常見弱點來源。

三、操作步驟:

  1. 開啟 DVWA 並登入

  2. 使用 Burp 攔截登入請求:設定瀏覽器代理(127.0.0.1:8080),在 Burp 中觀察 POST 請求與 Response headers(Set-Cookie)。

  3. 檢視 Cookie / Session 行為:在瀏覽器開發者工具查看 cookie 的 HttpOnly / Secure / SameSite 屬性,測試登出後是否能以舊 cookie 存取。

  4. 找到並檢視 config/config.inc.php 與 users 資料表

  5. 切換 DVWA 的 Security Level(low/medium/high/impossible)並觀察行為差異;記錄每個模組的目標與輸入點。

四、要檢查的重點:

  • 登入請求是否使用 POST。
  • 密碼是否以明文或弱雜湊儲存。
  • 是否存在 CSRF token。
  • session cookie 是否設定 HttpOnly / Secure / SameSite。
  • 切換安全等級後系統的輸入過濾/編碼差異。

五、可能遇到的問題與解法:

  • 找不到 config.inc.php:檢查 web root(/var/www/html/ 或 container 內路徑),或使用 find / -name config.inc.php 搜尋。
  • 無法登入:檢查 DB 是否已初始化(DVWA Setup),確認 security level 或帳密是否正確。
  • Burp 未攔截到請求:確認瀏覽器代理是否指向 Burp,並於 Burp 開啟 Proxy -> Intercept。
  • Cookie 欄位缺少 Secure(在 HTTP 環境常見):若要測試 Secure,需在 HTTPS 環境或模擬 TLS。

六、防禦重點:

  1. 密碼安全儲存:使用 bcrypt/argon2 等強雜湊且加 salt。
  2. 強化 Session 管理:使用隨機 session id,設定 HttpOnly / Secure / SameSite,登出時正確銷毀 session。
  3. 登入防護:限制登入嘗試、加入多因素驗證(MFA)。
  4. CSRF 保護:對敏感操作使用 CSRF token 並設定 SameSite cookie。
  5. 錯誤訊息隱私:避免回傳資料庫/系統堆疊訊息給使用者。

七、當日成果:

  • 使用 Burp 攔截登入請求,觀察 POST body 與 Set-Cookie 行為;
  • 找到並檢視 config/config.inc.php 與 users 資料表結構;
  • 切換 DVWA 的安全等級並列出各模組的測試計畫。

八、心得反思(範例):
透過檢查 DVWA 的登入系統與資料庫結構,我更清楚地了解攻擊者常從驗證與 Session 的薄弱點入手。理解登入流程與 cookie/session 行為,有助於在後續攻擊中更精準地設計測試,並能提出更具體的修補建議。


上一篇
DAY3 安裝 DVWA(Damn Vulnerable Web App)並在本地環境成功啟動網站,為後續攻防測試準備環境。
系列文
Web 攻防實驗 — 使用 DVWA 與 Kali Linux 的攻防學習實驗4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言