💡 為什麼要掃描 Web 目錄?隱藏頁面往往是破口
使用 Nmap 發現目標開啟了 80 或 443 Port 後,瀏覽首頁通常只會看到一般的產品介紹或形象頁面。
然而,許多關鍵功能與敏感資料其實隱藏在沒有公開連結的「路徑」之後,例如:
/admin 或 /dashboard:系統管理後台
/backup.zip 或 /db.sql:開發者遺留的備份檔或資料庫 Dump 檔
/.git/:洩露的 Git 版本控制目錄(可被還原出完整網站原始碼)
/api/v1/:並未在前端暴露的後端 API 端點
透過 Web 目錄爆破(Directory Brute Force),我們能主動挖掘出這些未公開的敏感路徑。
🛠️ 爆破原理與字典檔(Wordlist)
目錄爆破工具的原理非常簡單:工具會讀取一份預設的「路徑字典檔」,並向目標伺服器發送大量 HTTP 請求(例如 http://target.com/admin、http://target.com/test),再根據伺服器返回的 HTTP 狀態碼(Status Code) 來判斷目錄是否存在:
200 OK:頁面存在!
301 / 302 Redirect:目錄存在並進行轉址。
403 Forbidden:目錄存在但被限制存取(值得進一步測試繞過)。
404 Not Found:頁面不存在。
📚 必備字典庫:SecLists
Kali Linux 中預裝了資安領域最強大的字典庫 SecLists(路徑:/usr/share/seclists/),裡面涵蓋了各種 Web 目錄、密碼、User-Agent 與 Payload 清單。
🧰 兩大主流目錄爆破工具實作
常用指令:
Bash
gobuster dir -u http://<Target_IP> -w /usr/share/wordlists/dirb/common.txt -x php,html,txt -o gobuster_result.txt
dir:指定使用目錄爆破模式。
-u http://<Target_IP>:目標 URL。
-w :指定字典檔路徑。
-x php,html,txt:指定要嘗試測試的檔案副檔名(例如 index.php)。
-o gobuster_result.txt:匯出結果。
常用指令:
Bash
dirsearch -u http://<Target_IP> -e php,cgi,htm,html,js -f
-e:指定副檔名清單。
-f:強制在每個字典檔項目後加上副檔名測試