Burp Scanner 概述
Burp Scanner 是 Burp Suite Professional 中的核心功能之一,它是一款功能強大的自動化網頁應用程式漏洞掃描器。透過 Burp Scanner,滲透測試人員可以自動化地發現網站中的各種安全漏洞,包括 SQL 注入、跨站腳本攻擊(XSS)、路徑穿越等常見弱點。
主要特點
- 智慧掃描引擎:使用先進的演算法自動識別和測試潛在漏洞
- 精準度高:透過多重驗證機制減少誤報
- 自訂掃描範圍:可精確控制要掃描的目標和參數
- 整合工作流程:與 Burp Suite 其他模組無縫整合
- 詳細報告:產生專業的漏洞報告,包含修復建議
支援的漏洞類型
Burp Scanner 可以檢測多種 OWASP Top 10 漏洞:
| 漏洞類型 | 說明 |
|---|---|
| SQL Injection | SQL 注入漏洞 |
| Cross-site Scripting (XSS) | 跨站腳本攻擊 |
| XML External Entity (XXE) | XML 外部實體注入 |
| OS Command Injection | 作業系統命令注入 |
| Path Traversal | 路徑穿越漏洞 |
| Server-side Request Forgery (SSRF) | 伺服器端請求偽造 |
| Authentication Issues | 認證相關問題 |
| Information Disclosure | 資訊洩露 |
掃描類型
Burp Scanner 提供兩種主要的掃描模式:被動掃描和主動掃描。
被動掃描(Passive Scan)
被動掃描會分析通過 Burp Proxy 的所有流量,但不會主動發送任何額外的請求。
特點:
- 完全不對目標發送額外請求
- 不會觸發任何警報或防護機制
- 即時分析流經代理的流量
- 適合在測試初期進行偵察
可檢測的問題:
- 敏感資訊洩露(如密碼明文傳輸)
- 缺少安全標頭(如 X-Frame-Options)
- Cookie 安全設定問題
- 表單自動完成設定
- 混合內容(HTTPS 頁面載入 HTTP 資源)
啟用方式:
- 前往
Dashboard>Live passive crawl from Proxy - 確保選項已啟用
- 正常瀏覽目標網站,被動掃描會自動進行
主動掃描(Active Scan)
主動掃描會主動向目標發送大量測試請求,以發現更深層的漏洞。
特點:
- 發送大量測試 payload
- 可能觸發防護機制(WAF、IDS)
- 能發現更多類型的漏洞
- 需要授權才能執行
可檢測的問題:
- SQL 注入
- 跨站腳本攻擊(反射型、儲存型、DOM 型)
- 命令注入
- 路徑穿越
- XML 注入
- LDAP 注入
- 伺服器端模板注入(SSTI)
啟動方式:
- 在
Proxy>HTTP history中選擇要掃描的請求 - 右鍵選擇
Scan或Do active scan - 設定掃描選項後開始掃描
設定掃描範圍
正確設定掃描範圍是確保掃描效率和準確性的關鍵。
定義目標範圍
前往 Target 標籤頁
在
Target>Scope中設定掃描範圍。新增目標
點擊「Add」按鈕,輸入目標網址:
1https://example.com/使用進階範圍設定
可以使用正則表達式精確控制範圍:
1 2 3 4Protocol: HTTPS Host: ^example\.com$ Port: 443 File: ^/api/.*
排除特定路徑
某些路徑不應被掃描(如登出功能、刪除操作):
在
Scope標籤頁中找到「Exclude from scope」新增要排除的路徑:
1 2 3https://example.com/logout https://example.com/admin/delete/* https://example.com/api/v1/users/*/remove
過濾檔案類型
排除不需要掃描的靜態檔案:
前往
Scan configuration>Crawl設定在「Skip files with these extensions」中新增:
1css, js, jpg, jpeg, png, gif, svg, woff, woff2, ttf, ico
啟動掃描任務
方法一:從 HTTP History 啟動
- 在
Proxy>HTTP history中選擇目標請求 - 右鍵選擇
Scan - 選擇掃描類型:
- Crawl and audit:爬蟲加漏洞掃描
- Audit selected items:僅對選定項目進行掃描
- 點擊「OK」開始掃描
方法二:從 Target Site Map 啟動
- 前往
Target>Site map - 選擇要掃描的目錄或頁面
- 右鍵選擇
Scan>Crawl and audit
方法三:新建掃描任務
- 前往
Dashboard標籤頁 - 點擊「New scan」按鈕
- 選擇掃描類型:
- Crawl and audit:完整掃描
- Crawl:僅爬蟲
- Audit selected items:審計選定項目
- 輸入目標 URL
- 設定掃描選項
- 點擊「OK」開始
監控掃描進度
掃描開始後,可以在 Dashboard 中監控進度:
- Tasks:顯示所有掃描任務
- Issue activity:即時顯示發現的問題
- Event log:記錄掃描事件
掃描設定選項
爬蟲設定(Crawl Settings)
控制爬蟲的行為和範圍。
爬蟲策略:
| 策略 | 說明 |
|---|---|
| Fastest | 最快速度,較淺的覆蓋範圍 |
| Fast | 快速掃描,平衡速度與覆蓋率 |
| Normal | 標準掃描,適合大多數情況 |
| Thorough | 深入掃描,更全面但較慢 |
重要設定:
- Maximum crawl depth:爬蟲深度限制
- Maximum unique locations:最大掃描位置數
- Maximum requests per URL:每個 URL 的最大請求數
審計設定(Audit Settings)
控制漏洞測試的行為。
審計策略:
| 策略 | 說明 |
|---|---|
| Light | 輕量級掃描,僅測試高風險漏洞 |
| Normal | 標準掃描,平衡覆蓋率和時間 |
| Critical | 僅掃描關鍵漏洞 |
| Thorough | 深入測試所有漏洞類型 |
Issues to detect:
可以選擇要檢測的漏洞類型:
- SQL injection
- Cross-site scripting
- HTTP header injection
- OS command injection
- 等等…
效能設定
Request Engine:
- Number of threads:並發執行緒數(建議 5-20)
- Throttle between requests:請求間隔時間
- Request timeout:請求超時時間
資源池設定:
- 前往
Project options>Connections>Resource pools - 建立新的資源池
- 設定最大並發請求數
- 將掃描任務指派到資源池
漏洞報告解讀
問題嚴重程度
Burp Scanner 使用以下等級分類漏洞:
| 等級 | 顏色 | 說明 |
|---|---|---|
| High | 紅色 | 嚴重漏洞,需立即修復 |
| Medium | 橘色 | 中等風險,應儘快處理 |
| Low | 藍色 | 低風險問題 |
| Information | 灰色 | 資訊性發現 |
問題信心等級
| 等級 | 說明 |
|---|---|
| Certain | 確定存在漏洞 |
| Firm | 高度可能存在 |
| Tentative | 可能存在,需手動驗證 |
檢視問題詳情
- 前往
Dashboard>Issue activity或Target>Site map>Issues - 點擊問題查看詳情:
- Issue detail:漏洞描述和影響
- Request/Response:觸發漏洞的請求和回應
- Advisory:修復建議
- References:相關參考資料
匯出報告
- 前往
Target>Site map - 選擇目標,右鍵選擇
Issues>Report issues - 選擇報告格式:
- HTML
- XML
- 選擇要包含的內容:
- 問題詳情
- 請求/回應
- 修復建議
- 點擊「Generate report」
掃描策略設定
建立自訂掃描策略
- 前往
Dashboard>New scan>Scan configuration - 點擊「New」建立新策略
- 設定以下選項:
爬蟲策略:
| |
審計策略:
| |
- 儲存策略以便日後使用
針對不同目標的建議策略
快速掃描(時間有限):
- 爬蟲深度:5
- 審計類型:Critical issues only
- 執行緒數:10
完整掃描(深度測試):
- 爬蟲深度:15
- 審計類型:All issues
- 執行緒數:5
- 加入延遲避免觸發防護
API 測試:
- 停用爬蟲
- 僅審計已知端點
- 關注注入類漏洞
排程掃描
Burp Suite Professional 支援排程掃描功能。
設定排程任務
- 前往
Dashboard>New scan - 在掃描設定中選擇「Schedule」選項
- 設定排程參數:
- Start time:開始時間
- Recurrence:重複頻率(每日、每週等)
- End condition:結束條件
使用 CI/CD 整合
透過 Burp Suite Enterprise 或 REST API 整合到 CI/CD 流程:
| |
誤報處理
識別誤報
以下情況可能是誤報:
- 信心等級為「Tentative」的問題
- 無法重現的漏洞
- WAF 或應用程式的正常行為被誤判
驗證漏洞
使用 Repeater 手動測試
右鍵點擊問題,選擇「Send to Repeater」,手動驗證漏洞是否真實存在。
檢視回應內容
確認回應中是否真的包含漏洞特徵(如錯誤訊息、注入結果)。
嘗試不同 payload
使用不同的測試 payload 確認漏洞是否可被利用。
標記誤報
- 右鍵點擊問題
- 選擇「Set severity」>「False positive」
- 或選擇「Delete issue」移除誤報
建立誤報規則
避免相同誤報重複出現:
- 前往
Project options>Sessions>Macros - 建立規則排除特定模式的回應
- 或在掃描設定中排除特定參數
最佳實踐
掃描前準備
- 取得適當授權:確保有書面測試授權
- 了解目標架構:先手動瀏覽,了解應用程式功能
- 設定正確範圍:避免掃描到非授權目標
- 準備測試帳號:建立專用測試帳號
掃描中注意事項
- 監控掃描進度:定期檢查是否有異常
- 控制掃描速度:避免對目標造成負擔
- 記錄發現:及時記錄重要發現
- 備份設定:定期儲存專案狀態
掃描後工作
- 手動驗證:對所有發現進行手動確認
- 整理報告:移除誤報,補充說明
- 提供修復建議:針對每個漏洞提供具體修復方案
- 追蹤修復:協助確認漏洞修復狀態