1. 程式人生 > >Burpsuit構造測試資料

Burpsuit構造測試資料

 

一、使用場景

測試裝置web效能優化時,需要構造或刪除多個user、裝置、裝置賬號、訂單等,除了使用excel批量匯入外,有些資料構造/刪除使用burpsuit代理並將對應請求傳送到Burp Intruder模組中改引數對應value,同時根據場景配置選擇不同的attack type,設定需要修改引數值的變數型別和變數取值規則,進行attack攻擊可以很方便達到資料構造

二、模組說明

Burp Intruder主要有四個模組組成:

1:Target 用於配置目標伺服器進行攻擊的詳細資訊。
2:Positions  設定Payloads的插入點以及攻擊型別(攻擊模式)。
3:Payloads  設定payload,配置字典
4:Opetions   此選項卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以發動攻擊之前,在主要Intruder的UI上編輯這些選項,大部分設定也可以在攻擊時對已在執行的視窗進行修改。

1:Target 目標選項(Target tab)

這個選項是用來配置目標伺服器的細節:

 

 

 

2:Positions 位置選項(Positions tab)

這個選項是用來配置在攻擊裡產生的所有 HTTP 請求的模板:

 

 

 

使用一對§字元來標記出有效負荷的位置,在這兩個符號直接包含了模板文字的內容。當把一個有效負荷放置到一個給出的請求的特殊位置上時,就把這§符號放到這個位置,然後在兩個符號之間的出現的文字都會被有效負荷替換。當有個特殊位置沒有為一個給出的請求安排有效負荷時(這隻適用”sniper”攻擊型別),那個位置的§字元會被刪除,出現在它們之間的文字不會變化。

當使用 Burp Suite 傳送一個其他地方的請求時,Burp Intruder 會對你最想放置有效負荷的位置做一個最好的猜測,並且它把這些放置在每個 URL 和主體引數的值裡,以及每個cookie 裡。每個標記和它中間的文字都會被加亮以顯得更清晰。你可以使用 Intruder 選單上的選項標記的位置是要替換還是附加現有的引數值。在上面的請求編輯器裡,指出了定義位置的數量和文字模板的大小。

你可以使用選項上的按鈕來控制位置上的標記:

1. add § — 在當前游標位置插入一個位置標記。
2. clear § — 刪除整個模板或選中的部分模板裡的位置標記。
3. auto § — 這會對放置標記的位置做一個猜測,放哪裡會有用,然後就把標記放到相應位置。這是一個為攻擊常規漏洞(SQL 注入)快速標記出合適位置的有用的功能,然後人工標記是為自定義攻擊的。
4.refresh — 如果需要,可以重新整理編輯器裡有顏色的程式碼。
5.clear — 刪除整個編輯器內容。

3:Payloads 有效負荷選項(Payloads tab)

這個選項是用來配置一個或多個有效負荷的集合。如果定義了”cluster bomb”和”pitchfork”攻擊型別,然後必須為每定義的有效負荷位置(最多8個)配置一個單獨的有效負荷。使用”payload set”下拉選單選擇要配置的有效負荷。

選項1:Payload SetsPayload數量型別設定

選項2:Payload Opetions[Simple list] 該選項會根據選項1中Payload type的設定而改變

 

 

 

選項3:Payload Processing對生成的Payload進行編碼、加密、擷取等操作

 

 

 

選項4:Payload Encoding你可以配置哪些有效載荷中的字元應該是URL編碼的HTTP請求中的安全傳輸。任何已配置的URL編碼最後應用,任何有效載荷處理規則執行之後。 這是推薦使用此設定進行最終URL編碼,而不是一個有效載荷處理規則,因為可以用來有效載荷的grep選項來檢查響應為呼應有效載荷的最終URL編碼應用之前。

 

 

 

4:Opetions  選項卡(Options tab)此選項卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以發動攻擊之前,在主要Intruder的UI上編輯這些選項,大部分設定也可以在攻擊時對已在執行的視窗進行修改。

選項1:Request Headers 這些設定控制在Intruder是否更新配置請求頭。

 

 

 

如果選中‘update Content-Length header’框,Burp Intruder 會使用每個請求的 HTTP 主體長度的正確值,新增或更新這個請求裡 HTTP 訊息頭的內容長度。這個功能對一些需要把可變長度的有效載荷插入到 HTTP 請求模板主體的攻擊是很有必要的。這個 HTTP 規範和大多數 web 伺服器一樣,需要使用訊息頭內容長度來指定 HTTP 主體長度的正確值。如果沒有指定正確值,目標伺服器會返回一個錯誤,也可能返回一個未完成的請求,也可能無限期地等待接收請求裡的進一步資料。

如果選中‘set Connection: close’框,則 Burp Intruder 會新增或更新 HTTP 訊息頭的連線來請求在每個請求後已關閉的連線。在多數情況下,這個選項會讓攻擊執行得更快。

選項2:Request Engine 設定傳送請求的執行緒、超時重試等。

 

 

 

選項3:Attack Results 設定攻擊結果的顯示。

 

 

 

選項4:Grep – Match 在響應中找出存在指定的內容的一項。

 

 

 

選項5:Grep – Extract 通過正則提取返回資訊中的內容。

 

 

 

選項6:Grep – Payloads  這些設定可以用於包含已提交的有效負載的反射的標誌結果專案。如果啟用了此選項,BurpSuite會新增包含一個複選框指示當前負載的值在每個響應發現新的結果列。

 

 

 

選項7:Redirections 重定向響應,控制Burp在進行攻擊時如何處理重定向。

 

 

Burp Suite Intruder的4種攻擊型別

以下面這一段引數為例,被§§包圍的部分為需要破解的部分:

user=§ss§&password=§zxcv§&imageField.x=17&imageField.y=1

(1) (2)

----------------------------------------------------------

payload1 = [admin,administrator,sys,system,root]

payload2 = [pass,passwd,pwd]

1. Sniper (狙擊)

按順序將(1)(2)其中之一中使用所給的payload進行替換,另一個引數不變.

若在這裡使用payload2的話,破解嘗試順序為:

user | password

-------------------

ss | pass

ss | passwd

ss |pwd

pass | zxcv

passwd | zxcv

pwd| zxcv

2. Battering ram (撞擊)

使用payload同時替換所有被選中的位置.

在這裡使用payload2的話,破解嘗試順序為:

user | password

-------------------

pass | pass

passwd | passwd

pwd|pwd

3. Pitchfork (交叉)

按順序分別使用payload1替換(1),payload2替換(2).payload數量較少的列表用完則停止.

破解方式如下:

foriinrange( min(len(payload1),len(payload2)) ):

user = payload1[i]

password = payload2[i]

4. Cluster Bomb (集束炸彈)

通常意義上的窮舉法.

foriinpayload1:

forjinpayload2:

user = payload1

password = payload2

 

三、資料構造演示

 

1、新建多個裝置

Step1、burpsuit中開啟代理設定及瀏覽器代理配置為burpsuit中代理地址

‘’

 

 

 

 

Step2、burp中proxy中開啟代理intercept攔截功能,IE瀏覽器中新建裝置頁面填寫新建裝置後點擊確定,burp代理中將可以看到新建裝置請求

 

 

 

Step3、步驟2中看到對應請求後滑鼠右擊“send to Intruder”後,Intruder模組中可以看到對應請求,如下

 

 

 

Step4、步驟3可看到每個傳入引數burpsuit都自動會替換成一個Payloads,可以根據需求“Clear$”後選擇某個變數點選“Add$”,

 

 

 

 

Step5、設定Positions中Attack type,此處設定會影響到後續Payloads的配置,具體Attack type差異和影響Payloads配置可檢視本文前面描述,此處保持為預設Sniper模式:

 

 

Step6、設定Payloads變數生成規則,此處設定的規則會影響attack的結果和發起attack請求數量,此處新建裝置只需要改變裝置名稱變數即可,設定規則較簡單,如下

 

 

 

 

Step7、配置基本完成,如果有需要可在Options配置發起請求的多執行緒數目,後點擊Start attack即可(tip:此處可能會出現很多請求失敗的情況,有可能是獲取token失效,重新獲取到token替換髮起attack即可)