Burp Suite想必大家都用過,但是大家未必知道它的所有功能。因此,本文的主要目的就是儘量深入介紹各種功能。BurpSuite有以下這些功能:
截獲代理– 讓你審查修改瀏覽器和目標應用間的流量。
爬蟲 – 抓取內容和功能
Web應用掃描器* –自動化檢測多種型別的漏洞
Intruder – 提供強大的定製化攻擊發掘漏洞
Repeater – 篡改並且重發請求
Sequencer –測試token的隨機性
能夠儲存工作進度,以後再恢復
外掛*– 你可以自己寫外掛或者使用寫好的外掛,外掛可以執行復雜的,高度定製化的任務
*表示需要Burp Suite Pro授權。
Intercepting Proxy(擷取代理)
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的表單驗證。你也可以用正規表示式匹配替換請求/響應:
Spider(爬蟲)
當你在對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
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)