資安漏洞獵人 是做什麼的?
當目標是進行負責任揭露或漏洞獎金提交的實用漏洞發現時,請使用此技能,而非進行廣泛的最佳實務審查。
使用時機
- 掃描程式庫以尋找可被利用的漏洞
- 準備提交至 Huntr、HackerOne 或類似平台的漏洞獎金
- 進行分類判斷,重點是「這個漏洞真的能換到錢嗎?」而非「理論上是否不安全?」
運作方式
偏向尋找可遠端觸發、用戶可控的攻擊路徑,並剔除獎金平台常因其為資訊性質或超出範圍而拒絕的發現。
適用的漏洞類型
以下類型的問題通常具有重要影響:
| 模式 | CWE | 典型影響 |
|---|---|---|
| 用戶可控 URL 的 SSRF | CWE-918 | 內部網路存取、雲端元資料竊取 |
| 中介軟體或 API 防護的認證繞過 | CWE-287 | 未經授權的帳戶或資料存取 |
| 遠端反序列化或上傳至 RCE 路徑 | CWE-502 | 程式碼執行 |
| 可觸達端點的 SQL 注入 | CWE-89 | 資料外洩、認證繞過、資料破壞 |
| 請求處理器中的命令注入 | CWE-78 | 程式碼執行 |
| 檔案服務路徑的路徑遍歷 | CWE-22 | 任意檔案讀取或寫入 |
| 自動觸發的 XSS | CWE-79 | 工作階段竊取、管理員帳號淪陷 |
應跳過的項目
除非計畫另有說明,否則以下項目通常屬於低訊號或超出漏洞獎金範圍:
- 僅限本機使用的
pickle.loads、torch.load或類似操作(無遠端路徑) - CLI 工具中的
eval()或exec() - 完全硬編碼命令上的
shell=True - 僅缺少資安標頭
- 無利用影響的通用速率限制抱怨
- 需要受害者手動貼上程式碼的自我 XSS
- 非目標計畫範圍內的 CI/CD 注入
- 示範、範例或僅供測試的程式碼
工作流程
- 首先確認範圍:計畫規則、SECURITY.md、揭露管道與排除項目。
- 尋找真實入口點:HTTP 處理器、上傳功能、背景任務、Webhook、解析器與整合端點。
- 在協助下執行靜態工具,但僅將其視為分類輸入。
- 從頭到尾閱讀實際的程式碼路徑。
- 證明用戶控制可到達有意義的接收器。
- 以最小安全的概念驗證(PoC)確認可利用性與影響。
- 在撰寫報告前檢查是否有重複發現。
範例分類迴圈
semgrep --config=auto --severity=ERROR --severity=WARNING --json
然後手動過濾:
- 刪除測試、示範、固定程式碼、廠商程式碼
- 刪除僅限本機或無法觸達的路徑
- 僅保留具有明確網路或用戶可控路由的發現
報告結構
## 描述
[漏洞是什麼及其重要性]
## 弱點程式碼
[檔案路徑、行號範圍與小段程式碼]
## 概念驗證
[最小的有效請求或腳本]
## 影響
[攻擊者可達到的結果]
## 受影響版本
[測試過的版本、提交或部署目標]
品質關卡
提交前請確認:
- 程式碼路徑可從真實用戶或網路邊界觸達
- 輸入確實由用戶控制
- 接收器有意義且可利用
- PoC 可運作
- 問題尚未被公告、CVE 或公開問題單涵蓋
- 目標確實屬於漏洞獎金計畫的範圍