Burp Suite想必你們都用過,可是你們未必知道它的全部功能。所以,本文的主要目的就是儘可能深刻介紹各類功能。BurpSuite有如下這些功能:web
截獲代理– 讓你審查修改瀏覽器和目標應用間的流量。正則表達式
爬蟲 – 抓取內容和功能瀏覽器
Web應用掃描器* –自動化檢測多種類型的漏洞網絡
Intruder – 提供強大的定製化攻擊發掘漏洞app
Repeater – 篡改而且重發請求ide
Sequencer –測試token的隨機性工具
可以保存工做進度,之後再恢復測試
插件*– 你能夠本身寫插件或者使用寫好的插件,插件能夠執行復雜的,高度定製化的任務ui
*表示須要Burp Suite Pro受權。url
Intercepting proxy是針對web應用滲透測試工具的功能。Burp Suite的代理工具很是容易使用,而且能和其餘工具緊密配合。要使用這個功能,第一步就是創建代理監聽(Proxy–> Options功能下)。個人設置爲了默認值localhost (127.0.0.1),端口爲8080。
你能夠點擊編輯(「Edit」)進行修改,或者添加新的監聽端口。一旦創建好,你就要到瀏覽器的網絡鏈接設置處手動配置代理設置:
咱們如今能夠訪問咱們要測試的應用,而後看到發送的全部請求了。到Proxy –> Intercept標籤頁,而後確保截獲功能開啓(「Intercept is on」),而後就能看到全部的請求了。
你能夠修改請求,而後點擊「Forward」發送修改後的請求,若是不想發送某些請求你也能夠點擊「Drop」按鈕。「Actions」按鈕下還有不少其餘的功能。
若是你想回過頭看下前面發送的請求,你能夠切換到Proxy –> HTTP History標籤頁,這裏有全部的請求列表,還有些詳情如響應的長度,MIME類型和狀態碼。若是你修改過請求,你會看到兩個標籤,分別是修改前和修改後的請求:
另外一個有用的功能是自動修改請求/響應,功能位於Proxy –> Options。經過這個功能能夠去除JavaScript的表單驗證。你也能夠用正則表達式匹配替換請求/響應:
當你在對web應用進行初步檢查的時候,Burp Suite的spider工具很是有用。當你瀏覽Web應用時,它會從HTML響應內容中主動生成一份URL列表,而後嘗試鏈接URL。要使用爬蟲功能,咱們首先要切換到Target–> Site Map標籤,而後右鍵域名,選擇「Add To Scope」:
全部加入的域名都在Target –> Scope標籤頁裏。你能夠手動添加域名,修改,或者添加須要配出的URL(好比若是你不但願對「聯繫咱們」的表單進行自動化測試,就能夠把它排除掉):
若是咱們如今進入Spider –> Control標籤,就能看到有些URL正在排隊中,注意看下面,爬蟲只會對scope中的域名進行測試:
回到Site Map咱們能夠看到URL的列表,黑色表明咱們已經成功訪問過那個頁面,爬蟲確認過是有效的。灰色表明爬蟲在HTML響應中找到了這個URL可是尚未確認是否有效:
基本的設置後,咱們返回到Spider –> Control標籤,點擊「Spider Is Paused」按鈕運行工具,它會嘗試鏈接全部以前找到的URL,包括在運行過程當中找到的新的。若是過程當中有表單須要填寫,它會彈出表單供你填寫,確保能收到有效的響應:
如今Site Map中就有整理整齊的URL了:
Spider –> Options標籤下有些你能夠調整的選項,如user-agent ,或者爬蟲應該爬多深,兩個重要的設置是表單提交和應用登陸,設置好以後爬蟲能夠自動爲你填寫表單:
Intruder是Burp Suite中最受歡迎的工具。Intruder是獲取Web應用信息的工具。它能夠用來爆破,枚舉,漏洞測試等任何你想要用的測試手段,而後從結果中獲取數據。
我舉個例子來演示Intruder的使用方法。即爆破登陸頁面的管理員密碼(假設沒有賬號鎖定)。首先,咱們切換到Proxy-> HTTP History,右鍵要測試的請求,點擊「Send To Intruder」:
接下來咱們切換到Intruder標籤,準備攻擊。程序會在Target標籤裏自動填上請求中的host和端口。在Position(位置)標籤出哦咱們能夠看到咱們選擇的請求並設置咱們要攻擊的位置。用鼠標高亮想要攻擊的位置, 而後點擊右邊的「Add」,若是須要的話能夠選擇多個位置:
最上面的地方有多種攻擊類型,本例中咱們使用默認的Sniper,但實際上每種攻擊類型都有特定用途:
Sniper – 這個模式使用單一的payload組。它會針對每一個位置設置payload。這種攻擊類型適合對常見漏洞中的請求參數單獨地進行fuzzing測試。攻擊中的請求總數應該是position數量和payload數量的乘積。
Battering ram – 這一模式使用單一的payload組。它會重複payload而且一次把全部相同的payload放入指定的位置中。這種攻擊適合那種須要在請求中把相同的輸入放到多個位置的狀況。請求的總數是payload組中payload的總數。
Pitchfork – 這一模式使用多個payload組。對於定義的位置可使用不一樣的payload組。攻擊會同步迭代全部的payload組,把payload放入每一個定義的位置中。這種攻擊類型很是適合那種不一樣位置中須要插入不一樣但相關的輸入的狀況。請求的數量應該是最小的payload組中的payload數量。
Cluster bomb – 這種模式會使用多個payload組。每一個定義的位置中有不一樣的payload組。攻擊會迭代每一個payload組,每種payload組合都會被測試一遍。這種攻擊適用於那種位置中須要不一樣且不相關或者未知的輸入的攻擊。攻擊請求的總數是各payload組中payload數量的乘積。
位置設定好以後咱們切換到Payloads標籤,選擇攻擊時使用的數據。頂部的地方你能夠看到payload組。各個組都對應設置的各個位置。咱們能夠選擇payload類型,如簡易列表(Simple List)。
在那下面有一些payload選項。每一個payload類型都有不一樣的選項,供用戶爲你的測試進行修改。我常用的是數字(Numbers),你能夠設置範圍,選擇是連續的數字仍是隨機數字,還有每次攻擊時的步長等。不過對於咱們要搞的爆破攻擊,咱們只須要添加一個密碼字典就行:
接下來就是點擊右上角的開始攻擊(Start Attack)按鈕。程序就會彈出一個新的窗口,顯示的是嘗試的每一個payload和響應的詳情。咱們的例子中,第六個請求獲取到了正確的密碼:
咱們返回主窗口,而後切換到Intruder –> Options標籤頁,能夠發現還有些別配置。其中一個很重要的是「Grep– Match」功能,這個功能可讓你基於HTML中的字符串或者正則表達式標記出結果。這些標記會在新增的欄裏出現。
注:免費版的Burp Suite會對Intruder限速,專業版會更快。
Repeater(重複器)、decoder(解碼器)和comparer(比較器)也頗有用,但因爲使用簡單,在此就再也不贅述了。
* 參考來源:hack-ed,vulture翻譯,文章有修改,轉載請註明來自FreeBuf黑客與極客(FreeBuf.COM)