簡介
寫作思想:相比較具體介紹某個功能的用法。會更加側重於介紹 Burp 提供哪些功能。這樣好處是在比較複雜的測試場景,如果Burp 剛好提供對應的功能,就不用花費精力造輪子了。
而需要掌握具體操作方法,只需要查閱Burp 的官方手冊。Burp 查閱手冊十分方便,只需要點選相應功能旁邊的 即可。
本文所使用的 BurpSuite 版本為 v2021.8.2 Professional 。
⭐ 代表比較常用、重要的子功能。並非官方統計,作者的個人總結,僅供參考
安裝啟動
可以在此根據需要,下載相應版本的BurpSuite https://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 平臺應用測試助手。