BurpSuite 功能概覽

沉雲發表於2021-10-10

簡介

寫作思想:相比較具體介紹某個功能的用法。會更加側重於介紹 Burp 提供哪些功能。這樣好處是在比較複雜的測試場景,如果Burp 剛好提供對應的功能,就不用花費精力造輪子了。

而需要掌握具體操作方法,只需要查閱Burp 的官方手冊。Burp 查閱手冊十分方便,只需要點選相應功能旁邊的 image-20211010214802412即可。

本文所使用的 BurpSuite 版本為 v2021.8.2 Professional 。

⭐ 代表比較常用、重要的子功能並非官方統計,作者的個人總結,僅供參考

安裝啟動

可以在此根據需要,下載相應版本的BurpSuite https://portswigger.net/burp/releases。

image-20210910090346299

此處決定將要啟動的工程的儲存型別。是開啟一個臨時工程、還是在磁碟上建立一個新工程、或者開啟一個曾經儲存的工程。

在滲透測試專案中,建議在磁碟建立一個新工程,因為這樣在複測的時候可以很方便恢復到初測的場景。但如果是用於練習的話,使用臨時工程就行。

image-20210910090738176

此處主要決定 Burp 的設定選項,是採取預設選項,還是使用工程中自帶的選項,還是額外載入其它選項檔案。

此處建議將 Burp 個性化設定之後,將專案選項進行儲存,這樣每次啟動時會恢復個性化設定。

image-20210910091014389

各模組及功能的詳細介紹

Dashboard

控制和監視自動事件。

image-20210910085831418

左上角是當前專案的自動任務,Intruder 任務也在此顯示。

左下角是Burp 執行的一些事件記錄,通常主要檢視網路聯通問題。

右側是顯示由 Burp 發現的一些問題及對應的詳細問題。

New scan⭐

進行主動 爬取爬取並審計

Scan details

image-20210909203247729

掃描的型別,要掃描的目標 url 等。

Scan configuration-Crawl

image-20211008102304682

image-20210910091324651

  • Crawl Optimization:決定爬取的深度,以及爬取的策略。

  • Crawl Limits: 決定爬取的終止條件。

  • Login Functions: 決定是否觸發登入、註冊資料功能。

image-20210910091817605

  • Handling Application Errors During Crawl:在爬取時遇到錯誤時,滿足什麼條件會暫停任務。

  • Miscellaneous:一些爬取過程中的調整,各選項通俗易懂,預設選項足以應付絕大多數場景。值得注意的是,建議 Use embedded browser for Crawl and Audit 設定為 yes,即使用內建瀏覽器作為爬取引擎,可以處理js、載入額外資源等,從而爬取到更多內容。

Scan configuration-Audit

image-20210910093451206

  • Audit Optimization:審計的優化,決定速度,精確性。四個選項分別決定:
    • 基於審計的值,是否跳過不太可能的漏洞檢查。例如一個數字值就不會嘗試目錄遍歷漏洞。
    • 將經常出現的問題進行合併。
    • 自動維持 session。只在當選擇 Crawl and Audit 模式才有作用。
    • 在必要時遵循重定向。可以在Project options.HTTP.Redirections 設定具體的重定向條件。
  • Issues Reported:決定會審計哪些漏洞。

image-20210910094721741

  • Handling Application Errors During Audit:決定當遇到錯誤時(連線錯誤、超時)等,何時跳過該檢查點。並且決定何時暫停該任務。
  • Insertion Point Types:決定哪些位置的引數會被檢查。

image-20210910100807934

  • Modifying Parameter Locations:是否將引數挪換位置。常用於繞 waf。
  • Ignored Insertion Points:決定哪些引數不會被測試。

image-20210910101145569

  • Frequently Occurring Insertion Points:決定哪些引數位置在大量請求未檢測到問題的時候,將執行輕量級的審計。
  • Misc Insertion Point Options:決定在不同的資料封裝層進行審計測試。例如 json 資料被base64 編碼,則會在兩個資料層次都進行測試。
  • JavaScript Analysis:決定如何對 JavaScript 採取的分析技術。
Application login

image-20211008102206687

自定義的登入功能。

若自定義登入序列,則需要通過 burp 外掛錄取登入序列。

Resource pool

image-20211008102219548

控制傳送請求的執行緒數以及請求之間的間隔等。

New live task⭐⭐

進行被動 爬取審計

Scan details

image-20210909203343296

被動掃描的型別,工具範圍等。新建的 burp 工程會預設啟動這兩個任務。

Scan configuration-Crawl

image-20210910102157775

  • Live passive crawl:進行被動爬取,建議選擇所有。
Scan configuration-Audit

和New scan 的 Audit 配置一樣。

Resource pool

控制傳送請求的執行緒數以及請求之間的間隔。

Target

定義目標的範圍,以便其它工具進行過濾。繪製網站地圖。

Site map⭐

顯示網站地圖。

image-20210910103450975

右鍵功能

主動scan、被動 scan。

Engagement tools:按照順序,依次是搜尋關鍵字、註釋、指令碼、引用,分析目標、掃檔案目錄、設定相關定時任務、模擬手工測試。

Scope⭐

image-20210909204026894

定義目標範圍,以便其它工具根據此範圍進行資料包過濾。

Issue definitions

image-20210909204056034

顯示 scanner 工具所能識別到的所有問題的詳情。

Proxy

監聽、攔截請求。記錄資料包。

Intercept⭐

image-20211010112132651

攔截資料包。

右鍵功能

Request in browser:也就是將此請求在瀏覽器中重放。以該請求的cookie,或者以當前瀏覽器的cookie。

Engagement tools:分別是尋找引用這個 url 的 urls,掃描目錄,設定定時任務,生成 csrf poc。

Don`t intercept requests:不攔截該相關請求。

Do intercept:攔截該請求的響應。

HTTP history⭐

image-20210910124651422

檢視歷史的資料包記錄。

WebSockets history

image-20210910124751194

檢視歷史 websockets 訊息記錄。

Options⭐

對 Intercept 、Proxy 功能進行定製。

image-20210910124925965

  • Proxy Lsteners

    監聽的埠,管理證照。

image-20210910125053412

  • Intercept Client Requests / Intercept Server Responses / Intercept WebSockets Messages

    攔截客戶端的請求。攔截服務端的響應。攔截 WebSockets 訊息

image-20210910125159962

  • Response Modification

    對響應內容做一定程度的更改。可以顯示隱藏的表單,移除表單驗證等等。

  • Match and Replace

    對通過代理的請求、響應內容進行一些替換。

image-20210910125931756

  • TLS pass through

    某些app 採取證照pinning,可以在此新增繞過攔截的域名,burp 將無法抓取到此類流量。

  • Miscellaneous

    設定proxy 的一些行為。預設設定下注意4、5、6、7 選項,都會對經過 proxy 的請求進行修改。如果發現經過burp 的請求和正常網頁中請求的頁面不同,那麼很有可能是受到這幾個選項的影響。

    選項 Suppress Burp error 決定當在 Intercept 中 drop 請求時,是否在頁面中顯示burp 的報錯資訊。

Repeater

重放資料包。

image-20210910130804551

image-20210910130828071

Intruder

資料包爆破

Target

image-20211008103600669

Positions⭐

image-20211008103833268

  • Sniper

    狙擊手,一次只能替換一處標記。

  • Battering ram

    攻城錘,和 Sniper 很相似,不過一次可以替換多個標記。同一個值要出現在多個地方。

  • Pitchfork

    草叉,一對一。例如獲取使用者資訊處需要同時輸入使用者名稱以及對應的手機號。

  • Cluster bomb

    集束炸彈,多對多。例如登入處同時爆破使用者名稱以及密碼。

Payloads⭐⭐

image-20211008155949416

  • 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。

image-20211010144321716

  • Payload processing

    對payload 進行更改。支援以下幾種方式。

    新增前字尾、替換、擷取、更改大小寫、編解碼、hash、由擴充套件處理等等。

  • Payload Encoding

    對指定的字串進行url 編碼。

Resource Pool

工具內通用的資源池。通俗易懂

image-20211010144405598

Options⭐

一些控制選項。

image-20211010151515550

  • Save Options

    決定是否將這個 Intruder 儲存到工程檔案中。

  • Attack request headers

    更新請求headers。

  • Error handling

    決定 Intruder 在遇到錯誤如何處理。

  • Attack results options

    儲存請求、響應。

    是否發起未進行修改的請求。

    是否使用 dos 攻擊模式。指的是傳送完一個請求後就關閉本地的 tcp 連結。不管是否接收到響應。

    表示是否儲存 payloads,如果測試的漏洞會反射payload 到響應中,例如 xss。則要在 Options.Grep - payloads 標記響應時,必須要知道 payload。

image-20211010154247207

  • Grep - Match

    用來標記響應,在響應中搜素某個關鍵字。

  • Grep - Extract

    用來標記響應中的關鍵字,以便 Recursive grep 形式的 payload 使用。

  • Grep - Payloads

    用來標記響應,在響應中搜尋 payload。

image-20211010154539564

  • Redirections

    決定是否跳轉。

Sequencer

對資料包中特定引數進行數學統計分析。以檢驗其隨機性強弱。

image-20211010155810509

Decoder

對資料進行編碼或解碼。覆蓋常見的編解碼、hash 方式。

image-20210910131000679

Comparer

對比兩個 HTTP 資料包。按照位元組、byte 對比兩個資料包。

image-20210910131037355

image-20210910131108622

image-20210910131134987

Logger

記錄所有工具產生的流量。

image-20210910131159575

Extender

burp 外掛商店。管理外掛。API 文件。

Extensions

管理外掛。

image-20211010160744512

BApp Store⭐

外掛商店。

image-20211010164127816

APIS

burp 的 API 文件。

image-20211010164233693

Options

外掛自啟動,以及更新。語言環境。

image-20211010164248851

Project options

設定該專案檔案的選項。

Connections⭐

連線相關的設定。

image-20211010170031580

  • 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 協議的一些設定。

image-20211010170820478

  • Redirections

    決定處理哪些重定向。

  • Streaming responses

    指定特定的流式響應url。因為流式響應和普通的響應不同。burp 採取的是儲存轉發的模型,會將所有流資料接收完畢後才給客戶端,而正常邏輯是每到一個資料就傳給客戶端。

  • Status 100 responses

    決定如何處理 100 響應狀態碼?是原封不動返回 100 狀態碼,還是繼續請求,返回其響應的狀態碼。

  • HTTP/2

    是否儘可能使用 HTTP/2

TLS

證照相關配置。

image-20211010172726620

  • TLS Negotiation

    允許進行協商的方法。

  • Client TLS certificates

    配置客戶端證照。

  • Server TLS certificates

    顯示從服務端接收到的證照。

Sessions

會話相關的管理。

image-20210909143256276

Session Handling Rules⭐

定義session 處理規則。

image-20210909143545879

  • 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 的外掛。

image-20211010174223876

  • 定義此條處理規則應用的範圍。

    工具、url、引數。三個方面的控制。

動態維持網站的每個 Cookie。並可以用在其它工具。

image-20211010215623510

Macros⭐

巨集是一個或多個請求序列。可以用來自動進行登入或者獲取 csrf token。

image-20210909140523533

image-20210909140551900

image-20210909140620803

Misc

一些其它設定。

image-20211010174928104

  • Scheduled Tasks

    自動暫停或繼續執行 DashBoard 中的 Task 。

  • Burp Collaborator server

    collaborator server 相關的設定。

  • Logging

    記錄哪些工具產生的流量。

  • Embedded Browser

    內建的瀏覽器相關設定。

User options

使用者相關設定。比起Project options 來講更通用。

Connections

image-20210907171357341

Platform Authentication

HTTP 認證憑證,burp 將會使用這些憑證處理伺服器 401 需要認證的響應。

Upstream Proxy Servers⭐

http 代理

image-20210907171423267

SOCKS Proxy⭐

socks5 代理

TLS

證照相關的設定。

image-20210907171302910

Display⭐

顯示相關設定

image-20210907170901759

  • User Interface

    控制 burp 介面的字型大小以及主題。

  • HTTP Message Display

    HTTP 訊息框的顯示控制。

  • Character Sets

    設定 HTTP 資料包中的編碼字符集。

  • HTML Rendering

    在選擇渲染檢視時,是否是否為了渲染頁面而傳送額外請求,例如img、script 等。

Misc⭐

image-20210907165442845

  • Hotkeys

    快捷鍵。

  • Automatic Project Backup

    自動備份專案檔案。

  • Temporary Files Location

    臨時檔案存放目錄。

image-20210907165543127

  • REST API

    REST API 是一種 API 的規範標準,此處實際上就是 burp 的api 介面。

    實現的功能不多。

  • Proxy Interception

    burp 啟動時 interception 的預設狀態。

image-20210907165856343

  • Proxy History Logging

    當修改 Target.Scope 中的目標範圍時,是否將不在目標範圍內的流量傳送給 Proxy.History 或其它工具。

  • Performance Feedback

    向burp 提交應用使用統計,以便 burp 進行改善。

  • Updates

    自動更新

image-20210907170654401

  • HTTP Message Search

    控制 HTTP 訊息介面搜尋框的預設設定。

  • Embedded Browser

    設定是否瀏覽器每次退出時清除個性化設定。

  • Learn Tab

    顯示學習標籤頁

其它工具

Burp Infiltrator

用來加強 Burp Scanner 功能的一個jar 包。需要在目標網站系統上安裝,它會對網站程式進行更改,然後當識別到 Scanner 掃描時會將程式執行的堆疊資訊傳遞給 Collaborator 。以便更好的在程式碼層確認漏洞。

image-20211010183355915

Burp Clickbandit

用來生成點選劫持的 POC。

image-20211010183421606

Burp Collaborator client⭐

用來嘗試 OOB 技術的工具。

image-20211010183441717

用於錄製登入序列,以便 scanner 功能的自動登入功能使用。

image-20210909155408512

DOM Invader⭐

為了更方便的測試 XSS 。

image-20210909160032931

image-20211010161328491

image-20211010161331565

Mobile Assistant

IOS 平臺應用測試助手。

MobileAssistant_15

相關文章