BurpSuite 功能概覽
簡介
寫作思想:相比較具體介紹某個功能的用法。會更加側重於介紹 Burp 提供哪些功能。這樣好處是在比較複雜的測試場景,如果Burp 剛好提供對應的功能,就不用花費精力造輪子了。
而需要掌握具體操作方法,只需要查閱Burp 的官方手冊。Burp 查閱手冊十分方便,只需要點擊相應功能旁邊的 即可。
本文所使用的 BurpSuite 版本為 v2021.8.2 Professional 。
⭐ 代表比較常用、重要的子功能。並非官方統計,作者的個人總結,僅供參考
安裝啟動
可以在此根據需要,下載相應版本的BurpSuite //portswigger.net/burp/releases。
此處決定將要啟動的工程的存儲類型。是打開一個臨時工程、還是在磁碟上創建一個新工程、或者打開一個曾經保存的工程。
在滲透測試項目中,建議在磁碟創建一個新工程,因為這樣在複測的時候可以很方便恢復到初測的場景。但如果是用於練習的話,使用臨時工程就行。
此處主要決定 Burp 的設置選項,是採取默認選項,還是使用工程中自帶的選項,還是額外載入其它選項文件。
此處建議將 Burp 個性化設置之後,將項目選項進行保存,這樣每次啟動時會恢復個性化設置。
各模組及功能的詳細介紹
Dashboard
控制和監視自動事件。
左上角是當前項目的自動任務,Intruder 任務也在此顯示。
左下角是Burp 運行的一些事件記錄,通常主要查看網路聯通問題。
右側是顯示由 Burp 發現的一些問題及對應的詳細問題。
New scan⭐
進行主動 爬取 或 爬取並審計。
Scan details
掃描的類型,要掃描的目標 url 等。
Scan configuration-Crawl
-
Crawl Optimization:決定爬取的深度,以及爬取的策略。
-
Crawl Limits: 決定爬取的終止條件。
-
Login Functions: 決定是否觸發登錄、註冊數據功能。
-
Handling Application Errors During Crawl:在爬取時遇到錯誤時,滿足什麼條件會暫停任務。
-
Miscellaneous:一些爬取過程中的調整,各選項通俗易懂,默認選項足以應付絕大多數場景。值得注意的是,建議 Use embedded browser for Crawl and Audit 設置為 yes,即使用內置瀏覽器作為爬取引擎,可以處理js、載入額外資源等,從而爬取到更多內容。
Scan configuration-Audit
- Audit Optimization:審計的優化,決定速度,精確性。四個選項分別決定:
- 基於審計的值,是否跳過不太可能的漏洞檢查。例如一個數字值就不會嘗試目錄遍歷漏洞。
- 將經常出現的問題進行合併。
- 自動維持 session。只在當選擇 Crawl and Audit 模式才有作用。
- 在必要時遵循重定向。可以在Project options.HTTP.Redirections 設置具體的重定向條件。
- Issues Reported:決定會審計哪些漏洞。
- Handling Application Errors During Audit:決定當遇到錯誤時(連接錯誤、超時)等,何時跳過該檢查點。並且決定何時暫停該任務。
- Insertion Point Types:決定哪些位置的參數會被檢查。
- Modifying Parameter Locations:是否將參數挪換位置。常用於繞 waf。
- Ignored Insertion Points:決定哪些參數不會被測試。
- Frequently Occurring Insertion Points:決定哪些參數位置在大量請求未檢測到問題的時候,將執行輕量級的審計。
- Misc Insertion Point Options:決定在不同的數據封裝層進行審計測試。例如 json 數據被base64 編碼,則會在兩個數據層次都進行測試。
- JavaScript Analysis:決定如何對 JavaScript 採取的分析技術。
Application login
自定義的登錄功能。
若自定義登錄序列,則需要通過 burp 插件錄取登錄序列。
Resource pool
控制發送請求的執行緒數以及請求之間的間隔等。
New live task⭐⭐
進行被動 爬取 或 審計。
Scan details
被動掃描的類型,工具範圍等。新建的 burp 工程會默認啟動這兩個任務。
Scan configuration-Crawl
- Live passive crawl:進行被動爬取,建議選擇所有。
Scan configuration-Audit
和New scan 的 Audit 配置一樣。
Resource pool
控制發送請求的執行緒數以及請求之間的間隔。
Target
定義目標的範圍,以便其它工具進行過濾。繪製網站地圖。
Site map⭐
顯示網站地圖。
右鍵功能
主動scan、被動 scan。
Engagement tools:按照順序,依次是搜索關鍵字、注釋、腳本、引用,分析目標、掃文件目錄、設置相關定時任務、模擬手工測試。
Scope⭐
定義目標範圍,以便其它工具根據此範圍進行數據包過濾。
Issue definitions
顯示 scanner 工具所能識別到的所有問題的詳情。
Proxy
監聽、攔截請求。記錄數據包。
Intercept⭐
攔截數據包。
右鍵功能
Request in browser:也就是將此請求在瀏覽器中重放。以該請求的cookie,或者以當前瀏覽器的cookie。
Engagement tools:分別是尋找引用這個 url 的 urls,掃描目錄,設置定時任務,生成 csrf poc。
Don`t intercept requests:不攔截該相關請求。
Do intercept:攔截該請求的響應。
HTTP history⭐
查看歷史的數據包記錄。
WebSockets history
查看歷史 websockets 消息記錄。
Options⭐
對 Intercept 、Proxy 功能進行訂製。
-
Proxy Lsteners
監聽的埠,管理證書。
-
Intercept Client Requests / Intercept Server Responses / Intercept WebSockets Messages
攔截客戶端的請求。攔截服務端的響應。攔截 WebSockets 消息
-
Response Modification
對響應內容做一定程度的更改。可以顯示隱藏的表單,移除表單驗證等等。
-
Match and Replace
對通過代理的請求、響應內容進行一些替換。
-
TLS pass through
某些app 採取證書pinning,可以在此添加繞過攔截的域名,burp 將無法抓取到此類流量。
-
Miscellaneous
設置proxy 的一些行為。默認設置下注意4、5、6、7 選項,都會對經過 proxy 的請求進行修改。如果發現經過burp 的請求和正常網頁中請求的頁面不同,那麼很有可能是受到這幾個選項的影響。
選項
Suppress Burp error
決定當在 Intercept 中 drop 請求時,是否在頁面中顯示burp 的報錯資訊。
Repeater
重放數據包。
Intruder
數據包爆破
Target
Positions⭐
-
Sniper
狙擊手,一次只能替換一處標記。
-
Battering ram
攻城錘,和 Sniper 很相似,不過一次可以替換多個標記。同一個值要出現在多個地方。
-
Pitchfork
草叉,一對一。例如獲取用戶資訊處需要同時輸入用戶名以及對應的手機號。
-
Cluster bomb
集束炸彈,多對多。例如登錄處同時爆破用戶名以及密碼。
Payloads⭐⭐
-
Payload Sets
用來控制payload 的形式。
- Simple list:payload 列表。
- Runtime file:和 simple list 類似,但如果payload 太多例如 8G,不好一次載入到記憶體中,所以可以運行時再讀取每行。
- Custom iterator:和 Cluster bomb 功能類似。
a/b.c
目錄名/文件名.後綴名 ,最終生成的payload 集合是三個集合的笛卡爾積。 - Character substitution:將simple list 的中的字元串中的單個字元進行替換,生成相應的payload 集合。值得注意的是,如果將 e 替換為 3,那麼 peer 將會生成三個payload
peer/p3er/p33r
- Case modification:更改 payload 大小寫,生成多個 payload 。
- Recursive grep:從上一個請求的響應中獲取payload。在 Intruder.Options.Grep-Extract 中定義響應中需要被下一個請求使用的字元串。若使用此payload 形式,則必須將執行緒數量調整為1。
- Illegal Unicode:unicode 替換以繞過某些關鍵字過濾。
- Character blocks:重複一定次數指定的字元串。
- Numbers:數字
- Dates:日期
- Brute forcer:從指定的字符集合中生成指定長度的字元串集合。
- Null payloads:payload 為空,重複指定次數。
- Character frobber:將字元串的每個字元逐個增加1位,例如
abc
會生成bbc/acc/abd
三個。比較少用。 - Bit flipper:逐個bit 翻轉。比較少用。
- Username generator:跟據輸入的用戶名,生成可能的用戶名集合。
- ECB block shuffler:ECB 塊混洗。ECB 是一種分組加密方式。更改分組順序可能會引起目標程式邏輯異常。
- Extension-generated:由插件生成 payload。
- Copy other payload:從其它的payload 拷貝。其用處並不只是單純的拷貝,而是可以進一步通過 Payload Processing 進行處理。例如一個參數是另一個參數的 hash。
-
Payload processing
對payload 進行更改。支援以下幾種方式。
添加前後綴、替換、截取、更改大小寫、編解碼、hash、由擴展處理等等。
-
Payload Encoding
對指定的字元串進行url 編碼。
Resource Pool
工具內通用的資源池。通俗易懂
Options⭐
一些控制選項。
-
Save Options
決定是否將這個 Intruder 保存到工程文件中。
-
Attack request headers
更新請求headers。
-
Error handling
決定 Intruder 在遇到錯誤如何處理。
-
Attack results options
保存請求、響應。
是否發起未進行修改的請求。
是否使用 dos 攻擊模式。指的是發送完一個請求後就關閉本地的 tcp 鏈接。不管是否接收到響應。
表示是否保存 payloads,如果測試的漏洞會反射payload 到響應中,例如 xss。則要在 Options.Grep – payloads 標記響應時,必須要知道 payload。
-
Grep – Match
用來標記響應,在響應中搜素某個關鍵字。
-
Grep – Extract
用來標記響應中的關鍵字,以便 Recursive grep 形式的 payload 使用。
-
Grep – Payloads
用來標記響應,在響應中搜索 payload。
-
Redirections
決定是否跳轉。
Sequencer
對數據包中特定參數進行數學統計分析。以檢驗其隨機性強弱。
Decoder
對數據進行編碼或解碼。覆蓋常見的編解碼、hash 方式。
Comparer
對比兩個 HTTP 數據包。按照位元組、byte 對比兩個數據包。
Logger
記錄所有工具產生的流量。
Extender
burp 插件商店。管理插件。API 文檔。
Extensions
管理插件。
BApp Store⭐
插件商店。
APIS
burp 的 API 文檔。
Options
插件自啟動,以及更新。語言環境。
Project options
設置該項目文件的選項。
Connections⭐
連接相關的設置。
-
Platform Authentication
HTTP 認證憑證,burp 將會使用這些憑證處理伺服器 401 需要認證的響應。
-
Upstream Proxy Servers
http 代理
-
SOCKS Proxy
socks5 代理
-
Timeouts
決定四種情況下觸發 timeout 的閾值。
-
Hostname Resolution
自定義 DNS 解析。
-
Out-of-Scope Requests
是否丟棄不在範圍內的請求。這個範圍在 Target.Scope 中定義。
HTTP
關於HTTP 協議的一些設置。
-
Redirections
決定處理哪些重定向。
-
Streaming responses
指定特定的流式響應url。因為流式響應和普通的響應不同。burp 採取的是存儲轉發的模型,會將所有流數據接收完畢後才給客戶端,而正常邏輯是每到一個數據就傳給客戶端。
-
Status 100 responses
決定如何處理 100 響應狀態碼?是原封不動返回 100 狀態碼,還是繼續請求,返回其響應的狀態碼。
-
HTTP/2
是否儘可能使用 HTTP/2
TLS
證書相關配置。
-
TLS Negotiation
允許進行協商的方法。
-
Client TLS certificates
配置客戶端證書。
-
Server TLS certificates
顯示從服務端接收到的證書。
Sessions
會話相關的管理。
Session Handling Rules⭐
定義session 處理規則。
-
Rule Actions
定義執行何種處理。
-
Use cookies from the session handling cookie jar
使用 Cookie Jar 中記錄的 cookie。
-
Set a specific cookie or parameter value
設定指定cookie 或參數的值。
-
Check session is valid
通過請求某一頁面,或運行某個宏並檢視其結果來檢驗當前的 session 是否有效。並根據檢驗結果選擇進一步的操作。
-
Prompt for in-browser session recovery
burp 會彈出一個記錄 cookie 的面板,然後需要用戶手動在瀏覽器中進行登錄等恢復 session 的操作,之後選擇cookie面板中成功的恢復的cookie。
-
Run a macro
在發送請求前,運行指定的宏。
-
Run a post-request macro
在得到響應後,運行指定的宏。
-
Invoke a Burp extension
將請求傳給 burp 的插件。
-
-
定義此條處理規則應用的範圍。
工具、url、參數。三個方面的控制。
Cookie Jar
動態維持網站的每個 Cookie。並可以用在其它工具。
Macros⭐
宏是一個或多個請求序列。可以用來自動進行登錄或者獲取 csrf token。
Misc
一些其它設置。
-
Scheduled Tasks
自動暫停或繼續執行 DashBoard 中的 Task 。
-
Burp Collaborator server
collaborator server 相關的設置。
-
Logging
記錄哪些工具產生的流量。
-
Embedded Browser
內置的瀏覽器相關設置。
User options
用戶相關設置。比起Project options 來講更通用。
Connections
Platform Authentication
HTTP 認證憑證,burp 將會使用這些憑證處理伺服器 401 需要認證的響應。
Upstream Proxy Servers⭐
http 代理
SOCKS Proxy⭐
socks5 代理
TLS
證書相關的設置。
Display⭐
顯示相關設置
-
User Interface
控制 burp 介面的字體大小以及主題。
-
HTTP Message Display
HTTP 消息框的顯示控制。
-
Character Sets
設置 HTTP 數據包中的編碼字符集。
-
HTML Rendering
在選擇渲染視圖時,是否是否為了渲染頁面而發送額外請求,例如img、script 等。
Misc⭐
-
Hotkeys
快捷鍵。
-
Automatic Project Backup
自動備份項目文件。
-
Temporary Files Location
臨時文件存放目錄。
-
REST API
REST API 是一種 API 的規範標準,此處實際上就是 burp 的api 介面。
實現的功能不多。
-
Proxy Interception
burp 啟動時 interception 的默認狀態。
-
Proxy History Logging
當修改 Target.Scope 中的目標範圍時,是否將不在目標範圍內的流量發送給 Proxy.History 或其它工具。
-
Performance Feedback
向burp 提交應用使用統計,以便 burp 進行改善。
-
Updates
自動更新
-
HTTP Message Search
控制 HTTP 消息介面搜索框的默認設置。
-
Embedded Browser
設置是否瀏覽器每次退出時清除個性化設置。
-
Learn Tab
顯示學習標籤頁
其它工具
Burp Infiltrator
用來加強 Burp Scanner 功能的一個jar 包。需要在目標網站系統上安裝,它會對網站程式進行更改,然後當識別到 Scanner 掃描時會將程式執行的堆棧資訊傳遞給 Collaborator 。以便更好的在程式碼層確認漏洞。
Burp Clickbandit
用來生成點擊劫持的 POC。
Burp Collaborator client⭐
用來嘗試 OOB 技術的工具。
Navigation Recorder
用於錄製登錄序列,以便 scanner 功能的自動登錄功能使用。
DOM Invader⭐
為了更方便的測試 XSS 。
Mobile Assistant
IOS 平台應用測試助手。