0x01 Attack type簡介
Burpintruder是一個強大的工具,用于自動對Web應用程式自定義的攻擊。它可以用來自動執行所有類型的任務您的測試過程中可能出現的。它支援各種攻擊類型 - 這些決定在何種負載配置設定給有效載荷倉的方式。攻擊類型可以使用請求模闆編輯器上方的下拉菜單進行選擇。此外它能夠定義多個位置,多種攻擊載荷來進行靈活的攻擊。
0x02 Attack type類型
1 Sniper(狙擊手)
這将使用一套單一的payload set 。它的目标依次在每個有效載荷的位置,并把每個有效載荷送入依次那個位置。這不是針對一個給定的請求的位置不受影響 - 位置标記被移除,并在它們之間出現在模闆中任何封閉文本保持不變。這種攻擊類型為個别模糊測試的一些請求參數常見的漏洞非常有用。在攻擊中生成的請求的總數是位置的數目和在有效載荷中設定的有效載荷的數量的乘積。
簡單來說,多個$Position$值以輪流的形式:使用一個payload set 去枚舉第一個$ Position 1$值,再接着枚舉$Position2$值。或者說使用一個payload 載荷逐個進行攻擊多個位置,如:
Position | Payload |
1 | a |
1 | b |
1 | c |
2 | a |
2 | b |
2 | c |
使用場景:單一$$值且單一payload。即使攻擊的向量唯一。
2 Battering ram(撞擊物)
使用一組payload set 。通過疊代的有效載荷方式,并将相同的Payload set 再一次填充到所有已定義的有效載荷倉。當其中一個攻擊需要相同的輸入将被插入在多個地方在請求中(例如,一個Cookie中的使用者名和cookie參數)對這種攻擊類型是非常有用的。在攻擊中生成的請求的總數是有效載荷的有效載荷中設定的數目。
多個$Position$值同時以一個Payload set 值進行,如:$Position1$、$Position2$、$Position3$都是以a,b,c同時進行枚舉,并且隻能加載一份字典。或者說使用一個payload 載荷同時進行攻擊多個位置,如
Payload | a | b | c |
$Position1$ | 1 | 1 | 1 |
$Position2$ | 2 | 2 | 2 |
$Position3$ | 3 | 3 | 3 |
适用場景:賬号密碼都是同一個值
例如生成一組數字1-9,則就是1-1-1,2-2-2,3-3-3這種形式
3 Pitchfork(相交叉)
這将使用多個Payload set 。對每個定義的$Position$值(最多20個),使用與其對應的有效載荷組。我們需要設定每個$Position$值的Payload set ,這樣就把攻擊載荷送到指定的$Position$值。例如:$Position1 $值 設定了payload set 1, payload type 設定字典1;$Position2 $值 設定了payload set 2, payload type 設定字典2;$Position3 $值 設定了payload set 3, payload type 設定字典3, 那麼這樣攻擊的方式是1-1-1,2-2-2,3-3-3。這種攻擊類型是有用的請求(例如,使用者名中的一個參數,和對應于該使用者名中的另一個參數已知的ID号) 。在攻擊中生成的請求的總數是有效載荷中的最小有效載荷組的數目。
以一對一方式枚舉,多個$Position$值分别加載不同的字典檔案同時進行枚舉,如字典1(a,b,c)、字典2(1,2,3)。或者說,使用多個 payload set 一一對應 多個$Position$值,如
Payload1 | Payload2 |
a | 1 |
b | 2 |
c | 3 |
使用場景:一對一賬号密碼
4 Cluster bomb(集束炸彈)
使用多個Payload set。對每個定義的Position(最多20個)設定不同的payload set。通過每個有效載荷的攻擊疊代依次設定,使有效載荷組合的所有排列進行測試。
例如設定三個字典都是10個數,則總共有1000總比對的模式
也就是說,如果有兩個有效載荷的位置,則該攻擊将放置第一個有效載荷從payload set 2到Positions 2 ,并通過在有效負載的所有 payload set 1中的positions 1 ;然後它将第二個有效載荷從載荷設定2到位置2 ,并通過有效載荷全部載入循環設定1到位置1 。其中一個攻擊需要不同的和無關的或未知輸入要在多個地方插入這種類型的攻擊是非常有用的在請求中(例如猜測憑證,在一個參數的使用者名,并且在另一個參數密碼時) 。在攻擊中生成的請求的總數是在所有定義的有效載荷的有效載荷集的數目的乘積 - 這可能是非常大的。
Cluster bomb
分别以一對多的關系,如:字典1(a,b,c)、字典2(1,2,3)。或者說是使用 一對多的映射關系。産生的請求數目為payload 1 X payload2 的請求數目。
Payload1 | Payload2 |
a | 1 |
a | 2 |
a | 3 |
b | 1 |
b | 2 |
b | 3 |
c | 1 |
c | 2 |
c | 3 |
0x03 Payloadtype
從下面的清單中,我們可以選擇負載類型。大量有效載荷類型可供選擇,這些都是高度可配置的,可以讓你快速自動生成在各種情況下的攻擊載荷。考慮到實際情況中的使用比例,我們重點講述幾個常用的攻擊載荷類型。
1 Simple list--簡單字典
簡單字典,可從Payload Option>Add from list中加載或直接Add添加,burp 裡面有些內建的攻擊載荷。當然我們也可以自己添加,使用【load】
2 Runtime file
選擇自己的字典檔案
3 Custom iterator
自定義疊代器。這種負載類型,您可以配置項目的多個清單,并使用生成的清單中項的所有排列有效載荷。它提供了一個強有力的方法根據給定的模闆,以産生字元或其他項目的定制排列。例如,工資單的應用程式可以識别使用形式AB /12的人員數目的個人;你可能需要通過所有可能的人員編号周遊擷取所有個人的詳細資訊。
Position 1添加1,11,111
Position 2 添加2,22,222
Position 3 添加3,33,333
在枚舉時會生成如下格式字典:123,1123,11123,1223,11223,111223,12223依次類推。
4 Character substitution
字元替換。此負載類型允許您配置一個字元串清單,并應用各種字元替換到每個項目。這可能是在密碼猜測攻擊非常有用,用來産生在字典中的單詞常見的變化。
使用者界面允許您配置了一些字元替換。當執行攻擊,有效載荷類型工程通過逐一配置的清單項。對于每個項目,它産生一個數的有效載荷,根據所定義的取代基包括取代的字元的所有排列。例如,預設替換規則(a>4,b>8,e>3,i>1)
可以選擇以下的情況下修改規則:
No change - 這個項目可以用不被修改。
To lower case- 在該項目的所有字母轉換為小寫。
To upper case -在該項目的所有字母轉換為大寫。
To Propername - 在該項目的第一個字母轉換為大寫,以及随後的字母轉換為小寫。
To ProperName - 在該項目的第一個字母轉換為大寫,以及随後的字母都不會改變。
如admin,在枚舉時會
先枚舉一次admin,
然後再替換a>4(4dmin),
接着會替換i>1(adm1n),
最後才全部替換a>4 i>1(4dm1n),依次類推
6 Case modification
此負載類型允許您配置一個字元串清單,并應用各種情況下修改每個項目。這可能對密碼猜測攻擊非常有用,用來産生在字典中的單詞的情況下的變化。
例如: PeterWiener
peter wiener
PETER WIENER
Peter wiener
7 Recursivegrep
遞歸grep,要用這個必須在Intruder>options>Grep-extract下添加一個響應比對,比如說我一個請求頁需要前一個響應頁中的内容,這裡就可以這樣使用了
8 Numbers數字
此有效載荷類型的給定的範圍内,并在指定的格式産生數字有效載荷。
9 Dates
10 Brute forcer
11 Null payloads
這種攻擊載荷産生有效載荷,其值是一個空字元串。當某種攻擊請求需要反複發送同樣的請求,但這種請求相對于基本請求是沒有任何修改,這種攻擊載荷産生有效載荷,這可用于各種攻擊,例如采集 cookies來進行測序分析;應用層的拒絕服務攻擊,這些請求被重複發送,導緻伺服器上産生高工作負荷的任務,或保活會話令牌,以便這些令牌在其它的間歇試驗中使用。使用此載荷類型,它甚至沒有必要在請求模闆中标志有效載荷位置。您可以配置Burp産生一定特定數目的空有效載荷,或無限期地持續下去。
當然我們也可以使用數字、日期等其他方式産生大量的連接配接,導緻伺服器的負載過高。
歡迎大家分享更好的思路,熱切期待^^_^^