Burp Suite 是用於攻擊web 應用程序的集成平臺。它包含了許多Burp工具,這些不一樣的burp工具經過協同工做,有效的分享信息,支持以某種工具中的信息爲基礎供另外一種工具使用的方式發起攻擊。這些工具設計了許多接口,以促進加快攻擊應用程序的過程。全部的工具都共享一個能處理並顯示HTTP消息,持久性,認證,代理,日誌,警報的一個強大的可擴展的框架。它主要用來作安全性滲透測試。php
一、Target(目標)——顯示目標目錄結構的的一個功能
二、Proxy(代理)——是一個攔截HTTP/S的代理服務器(抓包),做爲一個在瀏覽器和目標應用程序之間的中間人,容許你攔截,查看,修改在兩個方向上的原始數據流。
三、Spider(爬蟲)——是一個應用智能感應的網絡爬蟲,它能完整的枚舉應用程序的內容和功能。
四、Scanner(掃描器)[僅限專業版]——是一個高級的工具,執行後,它能自動地發現web 應用程序的安全漏洞。
五、Intruder(入侵)——是一個定製的高度可配置的工具,對web應用程序進行自動化攻擊,如:枚舉標識符,收集有用的數據,以及使用fuzzing 技術探測常規漏洞。
六、Repeater(中繼器)——是一個靠手動操做來補發單獨的HTTP 請求,並分析應用程序響應的工具。
七、Sequencer(會話)——是一個用來分析那些不可預知的應用程序會話令牌和重要數據項的隨機性的工具。
八、Decoder(解碼器)——是一個進行手動執行或對應用程序數據者智能解碼編碼的工具。
九、Comparer(對比)——是一個實用的工具,一般是經過一些相關的請求和響應獲得兩項數據的一個可視化的「差別」。
十、Extender(擴展)——可讓你加載Burp Suite的擴展,使用你本身的或第三方代碼來擴展Burp Suit的功能。
十一、Options(設置)——對Burp Suite的一些設置html
凡是跟代理的內容,都找proxy就對了!
forward:傳輸本次數據
drop:丟棄本次數據
Intercepton/off:攔截開啓/關閉
Action:提供功能選項web
當Burp Suite攔截的客戶端和服務器交互以後,咱們能夠在Burp Suite的消息分析選項卡中查看此次請求的實體內容、消息頭、請求參數等信息。
Raw:視圖主要顯示web請求的raw格式,包含請求地址、http協議版本、主機頭、瀏覽器信息、Accept可接受的內容類型、字符集、編碼方式、cookie等。咱們能夠經過手工修改這些信息,對服務器端進行滲透測試。
params :視圖主要顯示客戶端請求的參數信息、包括GET或者POST請求的參數、Cookie參數。滲透人員能夠經過修改這些請求參數來完成對服務器端的滲透測試。
headers:視圖顯示的信息和Raw的信息相似,只不過在這個視圖中,展現得更直觀、友好。
Hex :視圖顯示Raw的二進制內容,你能夠經過hex編輯器對請求的內容進行修改。
Burpproxy所攔截的消息可在Fitter(過濾器)中根據須要進行修改
全部流經burpproxy的消息都會在 http history中記錄下來,咱們能夠經過歷史選項卡,查看傳輸的數據內容,對交互的數據進行測試和驗證,同時,咱們能夠經過右擊來彈出菜單,發送內容到burp的其餘組件進行處理(相似於Action的功能)
comment:對攔截的消息添加備註,在一次滲透測試中,你一般會遇到一連串的請求消息,爲了便於區分,在某個關鍵的請求消息上,你能夠添加備註信息。
Highlight的功能與Comment功能有點相似,即對當前攔截的消息設置高亮,以便於其餘的請求消息相區分。正則表達式
可選項配置Options
從界面上看,主要有如下幾大板塊
▪客戶端請求消息攔截(Interceptclient requests)
▪服務器端返回消息攔截(intercept server responses)
▪服務器返回消息修改(response modification)
▪正則表達式配置(match and replace)
▪其餘配置項(miscellaneous)數據庫
默認Intercept is on 按鈕出於開啓狀態 也就是說默認代理截斷功能是打開的.此時全部的請求都會被截斷,只有手動Forward以後請求才會被髮出去。
api
全部通過burp suite的請求 都會被記錄到Http history中. 上面是請求概要信息,下面是請求的詳細信息。跨域
有的web是沒有界面的 是用過一個長連接 相似於api的方式來傳輸數據 burp suite也是能夠截獲這類信息的。瀏覽器
Proxy Listeners(偵聽端口設置)
添加示例:
緩存
點擊next 就會生成一張證書 選擇路徑保存. 而後導入到瀏覽器,就能夠實現https的訪問安全
Burptarget組件主要包含站點地圖、目標域、target工具三部分組成
幫助滲透測試人員更好地瞭解目標應用的總體情況、當前的工做涉及哪些目標域、分析可能存在的攻擊面等信息
目標域設置 Target Scope
應用場景
1.限制站點地圖和Proxy歷史中的顯示結果
2.告訴Burp Proxy攔截哪些請求
3.Burp Spider抓取哪些內容
4.BurpScanner自動掃描哪些做用域的安全漏洞
5.在Burp Intruder和Burp Repeater中指定URL
站點地圖 Site Map
在一次滲透測試中,經過瀏覽器瀏覽的歷史記錄在站點地圖中的展示結果將自動在site map中呈現。
Site Map的左邊爲訪問的URL,按照網站的層級和深度,樹形展現整個應用系統的結構和關聯其餘域的url狀況;右邊顯示的是某一個url被訪問的明細列表,共訪問哪些url,請求和應答內容分別是什麼,都有着詳實的記錄。基於左邊的樹形結構,咱們能夠選擇某個分支,對指定的路徑進行掃描和抓取。
Target 工具的使用
主要包括如下部分:1.手工獲取站點地圖2.站點比較3.攻擊面分析
①手工獲取站點地圖:
1.設置瀏覽器代理和burp proxy代理,並使之能正常工做
2.關閉攔截功能
3.手工瀏覽網頁
這時,target會自動記錄站點地圖信息。
手工獲取站點地圖的方式有一個好處就是,咱們能夠根據本身的須要和分析,自主地控制訪問內容,記錄的信息比較準確。與自動抓取相比,則須要更長的時間,若是須要滲透測試的產品系統是大型的系統,則對於系統的功能點依次操做一遍所須要的精力和時間對滲透測試人員來講付出都是很大的。
②站點比較
對站點進行動態分析的利器,咱們在比較賬號權限時常用到它。
當咱們登錄應用系統,使用不一樣的賬號,賬號自己在應用系統中被賦予了不一樣的權限,那麼賬號所能訪問的功能模塊、內容、參數等都是不盡相同的,此時使用站點比較,能很好的幫助滲透測試人員區分出來。
通常來講,主要有如下3種場景:
1.同一個賬號,具備不一樣的權限,比較兩次請求結果的差別。
2.兩個不一樣的賬號,具備不一樣的權限,比較兩次請求結果的差別。
3.兩個不一樣的賬號,具備相同的權限,比較兩次請求結果的差別。
步驟:
1.首先咱們在須要進行比較的站點上點擊右鍵,找到站點比較的菜單「Comparesite maps」
2.因爲站點比較是在兩個站點地圖之間進行的,因此咱們在配置過程當中須要分別指定Site Map1和Site Map2。一般狀況下,Site
Map 1 咱們默認爲當前會話。如圖所示,點擊【Next】。
3.這時咱們會進入Site Map 1設置頁面,若是是全站點比較咱們選擇第一項,若是僅僅比較咱們選中的功能,則選擇第二項。以下圖,點擊【Next】。若是全站點比較,且不想加載其餘域時,咱們能夠勾選只選擇當前域。
4.接下來就是Site Map 2的配置,對於Site Map 2咱們一樣有兩種方式,第一種是以前咱們已經保存下來的Burp
Suite站點記錄,第二種是從新發生一次請求做爲Site Map2.這裏,咱們選擇第二種方式。
5.若是上一步選擇了第二種方式,則進入請求消息設置界面。在這個界面,咱們須要指定通訊的併發線程數、失敗重試次數、暫停的間隙時間。
6.設置完Site Map 1和Site Map 2以後,將進入請求消息匹配設置。在這個界面,咱們能夠經過URL文件路徑、Http請求方式、請求參數、請求頭、請求Body來對匹配條件進行過濾。
7.設置請求匹配條件,接着進入應答比較設置界面。在這個界面上,咱們能夠設置哪些內容咱們指定須要進行比較的
8.若是咱們以前是針對全站進行比較,且是選擇從新發生一次做爲Site Map2的方式,則界面加載過程當中會不停提示你數據加載的進度,若是涉及功能請求的連接較少,則很快進入比較界面。
③攻擊面分析
步驟:
1.右鍵找到【Engagementtools】(交互工具),點擊Analyze Target使用
2.在彈出的分析界面中,咱們能看到概況、動態URL、靜態URL、參數4個視圖。
3.概況視圖主要展現當前站點動態URL數量、靜態URL數量、參數的總數、惟一的參數名數目,經過這些信息,咱們對當前站點的整體情況有粗線條的瞭解。
4.動態URL視圖展現全部動態的URL請求和應答消息,跟其餘的工具相似,當你選中某一條消息時,下方會顯示此消息的詳細信息。
4.參數視圖有上中下三部分組成,上部爲參數和參數計數統計區,你能夠經過參數使用的次數進行排序,對使用頻繁的參數進行分析;中部爲參數對於的使用狀況列表,記錄對於的參數每一次的使用記錄;下部爲某一次使用過程當中,請求消息和應答消息的詳細信息。
在使用攻擊面分析功能時,須要注意,此功能主要是針對站點地圖中的請求URL進行分析,若是某些URL沒有記錄,則不會被分析到。同時,在實際使用中,存在很點站點使用僞靜態,若是請求的URL中不帶有參數,則分析時沒法區別,只能當作靜態URL來分析。
Burp Spider的功能主要使用於大型的應用系統測試,它能在很短的時間內幫助咱們快速地瞭解系統的結構和分佈狀況。
spider控制
Spider控制界面由Spider狀態和Spider 做用域兩個功能組成。
Spider 狀態除了顯示當前進度、傳輸狀況、請求隊列等統計信息外,還有Spider運行/暫停按鈕與清空隊列按鈕,分別用來控制Spider是否運行和隊列中的數據管理。而Spider做用域是用來控制Spider的抓取範圍,從圖中咱們能夠看到有兩種控制方式,一種是使用上一節講的Target Scope,另外一種是用戶自定義。此處用戶自定義做用域的配置與Target Scope的配置徹底一致,具體使用方法請參數上一節Target Scope的配置。
Spider可選項設置
Spider可選項設置由抓取設置、抓取代理設置、表單提交設置、應用登錄設置、蜘蛛引擎設置、請求消息頭設置六個部分組成。
BurpScanner的功能主要是用來自動檢測web系統的各類漏洞,咱們可使用BurpScanner代替咱們手工去對系統進行普通漏洞類型的滲透測試,從而能使得咱們把更多的精力放在那些必需要人工去驗證的漏洞上。
Scannr的掃描方式分爲兩種,主動掃描和被動掃描。
1.主動掃描(ActiveScanning)
當使用主動掃描模式時,Burp 會嚮應用發送新的請求並經過payload驗證漏洞。這種模式下的操做,會產生大量的請求和應答數據,直接影響系統的性能,一般使用在非生產環境。它對下列的兩類漏洞有很好的掃描效果:
① 客戶端的漏洞,像XSS、Http頭注入、操做重定向;
② 服務端的漏洞,像SQL注入、命令行注入、文件遍歷。
對於第一類漏洞,Burp在檢測時,會提交一下input域,而後根據應答的數據進行解析。在檢測過程當中,Burp會對基礎的請求信息進行修改,即根據漏洞的特徵對參數進行修改,模擬人的行爲,以達到檢測漏洞的目的。 對於第二類漏洞,通常來講檢測比較困難,由於是發生在服務器側。好比說SQL注入,有多是返回數據庫錯誤提示信息,也有多是什麼也不反饋。Burp在檢測過程當中,採用各個技術來驗證漏洞是否存在,好比誘導時間延遲、強制修改Boolean值,與模糊測試的結果進行比較,已達到高準確性的漏洞掃描報告。
Scanner的具體步驟
1.被動掃描
在burpsuite專業版中,默認對攔截的全部站點進行被動掃描,咱們能夠再Target下的site map 選項卡中看到,圖中所示的狀況,兩個紅色方框分別表示了某站點存在的漏洞以及某個漏洞的具體詳情。
咱們能夠在Scope中修改工做範圍,方便咱們進行鍼對性的分析工做
也能夠在Scanner下的Live Scanner選項卡中調整咱們的掃描策略,好比取消對全部站點的被動掃描
2.主動掃描
如圖,咱們能夠經過多種方式對某一站點進行主動掃描,操做十分簡單
隨便經過一種方式進行主動掃描後,咱們能夠進入到如圖選項卡中對掃描進度進行查看,圖中顯示掃描已完成,發現4個問題,一共收到了513個應答
工做原理:
Intruder在原始請求數據的基礎上,經過修改各類請求參數,以獲取不一樣的請求應答。每一次請求中,Intruder一般會攜帶一個或多個有效攻擊載荷(Payload),在不一樣的位置進行攻擊重放,經過應答數據的比對分析來得到須要的特徵數據。
應用場景:
測試步驟:
Repeater是一個重放攻擊器。
咱們能夠在這裏對數據包的參數進行修改,以此來進行請求與響應的消息驗證分析。
用於檢測數據樣本隨機性質量的工具,一般用於檢測訪問令牌是否可預測、密碼重置令牌是否可預測等場景,經過Sequencer的數據樣本分析,能很好地下降這些關鍵數據被僞造的風險。
使用步驟:
1.確認burpsuite的正確運行,打開攔截
2.從burpproxy的歷史日誌中,尋找token或相似的參數(cookies等)點擊右鍵彈出上下文菜單,點擊 send to sequencer
3.進入burpsequencer的live cature面板,選中剛纔發送過來的記錄,點擊 configure 配置須要分析的token 或參數
4.在彈出的參數配置對話框中,選中參數的值,點擊 ok,完成參數設置
5.點擊select live capture,開始進行參數值的獲取
6.當抓取的參數值總數大於100時,點擊【pause】或者【stop】,這時能夠進行數據分析,點擊【Analyze
now】即進行數據的隨機性分析。
7.等分析結束,能夠看到分析結果的各類圖表
8.咱們也能夠把獲取的數據保存起來,下一次使用的時候,從文件夾加載參數,進行數據分析。
——點擊savetokens保存數據
9.再次使用時,直接在manual load處,點擊load… 加載數據便可