若希望更早前了解BurpSuite的介紹,請訪問第二篇(滲透測驗之BurpSuite工具的使用介紹(二)):https://www.cnblogs.com/zhaoyunxiang/p/16000296.html
五、Burp Scanner 模塊使用介紹:
1.Burp Scanner是什么:
Burp Scanner是一個進行自動發現 web應用程式的安全漏洞的工具,它是為滲透測驗人員設計的,并且它和你現有的手動執行進行的 web應用程式半自動滲透測驗的技術方法很相似,
使用的大多數的 web掃描器都是單獨運行的:你提供了一個開始 URL,單擊”go”,然后注視著進度條的更新直到掃描結束,最后產生一個報告,Burp Scanner和這完全不同,在攻擊一個應用程式時它和你執行的操作緊緊的結合在一起,讓你細微控制著每一個掃描的請求,并直接反饋回結果,
Burp Scanner可以執行兩種掃描型別:
1. Active scanning掃描器向應用程式發送大量的偽造請求,這些請求都是有一個基礎請求衍生出來的,然后通過分析回應結果來查找漏洞特征,
2.Passive scanning掃描器不發送他自己的任何新請求,只分析現有的請求和回應的內容,從這些資訊中推斷出漏洞,
你可以在目標應用程式使用兩種不同方式:
1.Manual scanning你可以發送其他 Burp工具的一個或多個請求,來對這些特定的請求執行主動或被動的掃描,
2. Live scanning as you browse你可以配置掃描器來自動執行主動或被動的掃描那些你瀏覽應用程式時經過代理的請求,
這種自動探測漏洞的方法給滲透測驗人員帶來了幾點好處:
1.通過逐個的請求,能快速可靠地對常規的漏洞進行掃描,這很大程度地減少你的測驗精力,還能使你對那些不能進行自動可靠地探測的漏洞直接使用個人經驗來判斷,
2.每種掃描的結果會被立即顯示出來,并通報出在這個請求中包含的其他的測驗操作,
3.Burp避免了其他掃描器的令人沮喪的問題,進行一次自動掃描需要 1年的時間,并還不能保證掃描是否有效,或者是否遇到了影響掃描效率的問題,
Burp精準地控制著要掃描的內容,并對掃描結果和應用程式上的廣范圍的影響進行實時監控,Burp Spider讓你把可靠自動化的優點和人類直觀智慧結合起來,常常會得到壓倒性的結果,
2.主動掃描
在這種掃描模式下,Burp使用應用程式的一個叫做” base request”單個請求,通過一些方法修改后,來觸發一些漏洞存在的跡象,這些被修改過的請求被發送到應用程式,然后分析回應的結果,在許多情況下,根據初步探測的結果,會發送進一步的請求,這種操作模式會產生大量的惡意的請求,并導致應用程式妥協,你要謹慎地使用這種掃描模式,僅當得到應用程式的所有者允許時,并且警告過他們自動掃描會給他們的應用程式和資料帶來影響,如果可能,掃描不用的系統,并在掃描前進行備份,
對應用程式中的已知缺陷的漏洞的自動探測是很可靠的,Burp的主動掃描能力的是為掃描器能可靠地查找到基于輸入的漏洞而設計的,為了避免在其他地方產生的誤報, Burp在他的輸出上給了你自信,讓你集中精力到那些需要提供人類經驗和智慧的作業上,
Burp主動掃描能確認的問題大體上可分為下面 兩類:
1.在客戶端上的輸入漏洞,如:跨站點腳本,HTTP訊息頭注入,開放重定向,
2.在服務端的輸入漏洞,如:SQL注入,作業系統命令注入,檔案路徑遍歷,
可以以非常高的可靠度探測到第 1類的問題,在大多數情況下,在客戶端上,和查找漏洞相關的任何事情都是可見的,例如,為了探測反射型 XSS,Burp Scanner會在應用程式的每個入口點提交一些良性的輸入,并查看回復的回應,如果有回復,Burp會決議出回應的內容來確定回復顯示的背景關系,然后通過許多修改的輸入來確定在背景關系里組成一個攻擊的字串是否被回復了,Burp Scanner有打破輸入過濾的廣泛能力,并且繞過 web服務器的相關設定,來檢查所有使用的背景關系,通過先前檢查的反饋對決策樹進行全面檢查,Burp能高效地模擬一個富有經驗并且有條不紊的測驗人員的檢測行為,如一個輸入封裝計劃,第 2類問題本來就不適合使用自動化手段探測,因為大多數情況下和漏洞有關的行為只能發生在服務端,客戶端能看到的現象太少,例如,SQL注入漏洞會在回應中回傳詳細的資料庫錯誤,或者完全地被遮蓋,Burp Scanner使用許多技術來確認盲服務端注入問題,有延時,改變布爾條件,以及執行模糊的回應比較,等等,此時這些技識訓比用在第 1類問題時產生更多的錯誤,然而,Burp Sanner在這里卻實作了一個高的成功率,能可靠地發現許多問題,這對測驗人員來說是費力的或者困難的來進行診斷,
3.被動掃描
在這種模式下,Burp不會向服務器發送任何新的請求,它只分析現存的請求和回應,并從中推斷出漏洞,在你訪問的任何授權應用程式,使用這種操作模式是安全和合法的,
只使用這種被動的技術,Burp Scanner能發現幾種漏洞,有:
1.明文提交的密碼,
2.不安全的 cookie屬性,如丟失 HttpOnly和安全標志,
3.開放的 cookie范圍,
4.跨站點腳本泄露 Referer資訊,
5.自動填充的表單,
6.SSL保護的緩沖區內容,
7.目錄遍歷,
8.提交的密碼會在后面回傳的回應中,
9.不安全的會話令牌傳輸,
10.資訊泄露,如互聯網 IP地址,電子郵件地址,堆疊跟蹤,等,
11.不安全的視圖配置,
12.不清楚的,沒完成的,不正確或不標準的內容型別指示,
這些問題都是相對平淡的,對我們來說記錄它們顯得無聊和重復,但是作為一個滲透測驗人員,有人責任指出它們,在你瀏覽應用程式一次時,Burp Scanner既然可靠地掃描出這些問題,你就應該理智清楚它們,
在下面的一些情況,只進行被動的掃描是有好處的:
1.因為被動掃描不必向應用程式發送任何新的請求,你就可以安全地用在重要的應用程式上,你可以完全地控制發送的每一個請求,
2.有些應用程式對攻擊的反應是很氣憤的,當收到一個惡意的請求時,會終止你的會話或者鎖定你的賬號,在這種情況下,只能一次次地進行手工測驗,這時你可以通過被動掃描來確認許多問題,而不會出現麻煩,
3.如果你沒被授權進行攻擊一個目標,你可以像普通用戶那樣瀏覽應用程式使用被動掃描來確認漏洞,如果你提出了一個新的滲透測驗方案,你可以通過被動掃描你的目標來獲得對安全狀態的了解,甚至在你進行測驗之前,有希望發現一些公布的問題,
4.開始掃描
Manual scanning在 Burp Suite的任何地方的都可以把一個或多個 HTTP請求發送到Scanner執行主動或被動的掃描,例如,你使用 Burp Proxy攔截下一個感興趣的請求,你可以通過使用背景關系選單,只對這一個請求進行掃描:

同樣地,你可以選擇目標站點地圖上或者歷史記錄里的一系列的請求,把它們發送到Scanner上,因此,在瀏覽完應用程式一圈并建立起它內容的全面地圖后,你就可以告訴 Burp掃描應用程式功能的特定區域:

如果你選擇了多個項并把它們發送到主動掃描,Burp會啟動一個簡潔的向導,讓你微調你的選擇,向導的第一個畫面為你提供了許多直觀的過濾器來洗掉那些需要的潛在項 (重復的,已經掃描過的,媒體內容,等等),以及顯示過濾器影響到的項有多少:

第二個向導畫面向顯示了剩下項的表單,你可以使用多種相關的屬性對表格進行排序,查看所有的請求和回應,以及洗掉單個項:

這時向導設定已經完成,以平常方式來對這些選中進行掃描,
Live scanning可以使用另一種方式—”live scanning”來執行掃描,在這種模式下,你告訴 Burp你使用主動或被動掃描的目標范圍,然后它會自動啟動掃描,對你使用應用程式產生的相關請求進行主動或被動的掃描,當使用這種模式操作時,你需要作為一個普通用戶簡單地把應用程式訪問一圈,向 Burp顯示出應用程式內容和功能的位置,然后它就會在后臺進行查找漏洞,當使用現場掃描時,你細微地控制著 Burp將要自動地掃描的請求,如果你已經為你的作業配置一個目標范圍,然后你可以簡單地告訴 Burp掃描屬于范圍內的每一個請求,另外,你可以自定義一個用來主動和被動的掃描范圍,在下面的這個例子里,Burp配置為使用主動掃描發送到 www.myapp.com的每一個請求,除了登陸請求,使用被動掃描發送到其他目的地的任何請求:

注意現場掃描會忽略對媒體(影像,等)資源的請求,在這些資源里請求不包含非 cookie引數,這些請求的靜態資源幾乎不會有任何安全問題,所以掃描器會忽略它們, (這對手動掃描無效—如果你手動地選擇了這樣的一些項,并把它們發送到主動掃描,這時它們當然會通過正常的發送被掃描了),
Active scan queue當你發送請求到主動掃描時,它們會被立即處理,因為主動掃描會像服務器發送大量的請求,發送的請求會被添加到一個佇列里,一個有許多引數的經典請求會在 1到 2分鐘內掃描完,掃描佇列通過配置的執行緒池來掃描,所以等待掃描項的數目會變得非常大,當每一項都被掃描完時,掃描隊串列會顯示出它的進展——發出的請求數,完成百分比,確認的漏洞,根據接近最嚴重問題的可信度和嚴重性,把項的最后的值圖成了彩色:

你可以雙擊掃描佇列里那些顯示已確認有問題的任何項,查看項的基礎請求和回應:

你可以使用背景關系選單在掃描佇列上進行許多操作:
1.顯示選中項的細節,
2.取消選中的項,
3.再次掃描選中的項,
4.暫停或繼續掃描器,
使用這些方法,Burp Scanner讓你對它做的每事情都細微地控制著,并和其他測驗操作緊緊地結合在一起,它讓你設定自己感興趣的應用程式的區域的優先權,使用現場掃描瀏覽它們,或者從站點地圖選中它們進行掃描,它立即提供關于這些區域的反饋,來通知你的手動測驗結果,
5.審查結果:
除了上面單個請求視圖里發現的問題,Burp Scanner保存了一份對所有發現的問題的匯總記錄,在一個目標應用程式的站點地圖的視圖樹上顯示出來,選中視圖樹上的一個主機或者檔案夾顯示出在站點上這個分支列舉出的所有已確認的問題:

當發現同型別的多個問題時,這些問題會在面板的右上部匯總成一個問題,你可以展開這個匯總項來查看每個有問題的實體,在面板右上部里選中一個問題,在面板右下部里顯示出這個問題的完整細節,這包含了自定義的漏洞咨詢,所有相關的請求和回應,來理解和再現這個問題,
咨詢包含了對了問題的標準描述和它的應對,以及這個問題特征和整治手段的描述,在上面的例子中,跨站點腳本咨詢告訴我們:
1.提供了攻擊輸入的請求引數(搜索關鍵詞),
2.回應中的輸入回傳的背景關系語法(在一個 JavaScript的片段里的一個單引號分割的字串),
3.這個應用程式在我們的輸入中過濾了單引號字符,但是卻沒過濾反斜杠,這就讓我們回避了過濾器,
4.Burp向應用程式提交了理論上的有效載荷,這個有效載荷的格式被回傳了,
5.這個原本的請求使用的是 POST方法,Burp能把它轉換成 GET方法的請求來方便地證實和發現這個問題,
Burp Scann對每一個發現的問題都給出了一個安全等級(高,中,低,資訊性的)和可信度(一定,堅定,暫定),當使用一個不太可靠的技術確認一個問題時,Burp通過降低可信度來讓你注意,在咨詢的旁邊,Burp顯示了那些用來確認問題的請求和回應,并對相關部分進行加亮,你可以查看 Burp是怎樣來確認這個問題的,并能迅速地明白這個漏洞的本質,你也可以把這些請求發送到其他工具上進行手動驗證這個問題,或者微調 Burp搜集的攻擊理論,


在掃描到的問題的串列里,你可以對單個或多個的安全級別和可信度進行修改 (通過上下選單),或者集中洗掉問題(通過背景關系選單或使用”del”鍵),
注意如果你洗掉一個問題,Burp重新發現同一問題(例如,如果你重新掃描同樣的請求),這個問題會再次被報出,相反,如果你把這個問題標記為誤判,就不會出現相同的問題了,因此,洗掉問題的最好辦法是再結果視圖樹上清除那些你不感興趣的主機或路徑,對于那些你不想要問題,當你正在使用它的功能時,可以使用誤判標記,
6.掃描優化:
Burp Scann會實時給提供正在執行的操作的細節資訊,在掃描佇列里,你可以監視每一個基礎請求的掃描程序,這個表格向你顯示了 Burp放置有效負荷的”插入點”的數量,以及產生的攻擊請求的數量,(后者不是前者的一個線性函式,通過觀察應用程式的行為來反饋到后面的請求,就和一個測驗人員一樣),
這個資訊讓你可以快速地查看掃描進度是否太慢,以及了解其原因,通過這個資訊,你可以采取一些手段來優化你的掃描,在掃描佇列里一個背景關系選單,你可以使用它對單個項進行取消或者重新設定優先權,通過你對應用程式的了解,你可以使用這個選項來對掃描器進行優化,
Attack insertion points掃描速度和效率的關鍵因素是攻擊插入點的選擇,Burp讓你能細微地控制著進行有效負荷攻擊的基礎請求的位置,這時你可以下面的配置項:

復選框讓你能夠定義使用 HTTP請求進行攻擊的位置:
1.URL,訊息體,以及 cookie引數的值,
2. Parameter name –如果被選中,Burp會添加一個引數到請求中,并且攻擊引數名字的位置,如果僅僅測驗過引數值,常常能探測丟失的不尋常的錯誤,
3.HTTP headers –如果被選中,Burp會對 User-Agent和 Referer headers的位置進行攻擊,常常使用日志功能來探測 SQL注入或保存型 XSS的問題,
4. AMF string parameters –對動作訊息格式的請求,Burp攻擊那些基于字串資料型別的訊息,
5. REST-style URL parameters –如果被選中,Burp會攻擊那些有部分 URL路徑的每個目錄和檔案名,
你可以對 Burp在個基礎請求中的攻擊插入點數量設定一個限制,偶爾,HTML表單里會包含大量的區塊(幾百,或者更多),如果 Burp對每個模塊進行完全的漏洞掃描,這次掃描會花費大量的時間才能完成,如果你遇到表單的引數非常多時,設定一個插入點的限制數量,防止掃描止步不前,使用限制后,進入掃描佇列的項就會指示出跳過的插入點的數量,讓你能手動查看這些基礎請求,然后決定是否值得對它的所有可能的進入點進行完整的漏洞掃描,
你可以告訴 Burp使用” intelligent attack selection”,這個選項讓 Burp執行或者忽略基于每個攻擊插入點基值的服務端檢查,例如,如果引數的值包含有不能在檔案名中正常顯示的第 53頁字符時,Burp會跳過這個引數的檔案路徑遍歷檢查,使用這個選項可以大大加快掃描,而且這樣存在丟失實際存在的漏洞的風險也最小,
插入點配置讓你指出 Burp在服務端注入檢查跳過的引數,這些檢查相對比較消耗時間,因為 Burp發送大量的盲目探測多種漏洞的請求,如果你認為請求里的某個引數不會產生漏洞(例如,僅僅由平臺或者 web服務器使用的內置引數),你可以告訴 Burp不要測驗這些,(注意客戶端會檢查像執行的跨站點腳本,因為如果一個引數沒有問題,每個請求引數的測驗會花費掃描程序中最小開銷時間)

和其他值一樣,你可以通過 URL路徑的位置(用斜杠分開)來確認 REST引數,要這樣做,在引數下拉選單里選中”REST parameter”,在項下拉選單選中”name”,然后指定你想排除測驗的 URL路徑里的位置序列號,你可以設定任意引數,Burp不會任何檢查的,
為主動掃描指定完整的自定義攻擊插入點是非常有可能的,所以你可以指定基礎請求的任意位置來放置攻擊字串,要使用這個功能,就需要把這個相關基礎請求發送到 Intruder,通過常規方式使用有效負荷位置界面來定義每個開始/結束的插入點,并選中 Intruder選單選項里的” actively scan defined insertion points”.Active scanning engine

這個選項讓你微調 Burp的掃描引擎,這依據應用程式的反應和自己的處理能力以及帶寬,如果你發現你的掃描進度很慢,但應用程式正常,CPU使用率很低,這時你可以加大掃描執行緒的數量來使你的掃描更快,如果你發現有連接錯誤產生,應用程式開始慢下來,或者你的電腦很卡,你就應該降低執行緒數量,并且增加處理網路錯誤數量和在處理暫停的時間,如果應用程式的功能是處理一個基礎請求介面和其他請求回傳的回應直接的操作,你需要把執行緒數量降到 1,以確保每次只掃描一個基礎請求,如果你想避免應用程式超載,或者保持網路上隱身,你可以使用這個閥門設定來添加固定或隨機的請求間隔,
由于一些應用程式重定向到包含你提交的值的第三方 URL,Burp通過不跟蹤任何接收到的重定向,保護你在不經意間會攻擊第三方應用程式,如果掃描的請求是在定義的目標范圍內(例如,使用目標范圍來控制掃描的內容),Burp會只跟著范圍內的重定向,如果請求不在范圍內(例如,你可以手動執行一次對范圍外請求的掃描),Burp只跟蹤和已掃描的請求的主機埠一致的重定向,并且不能滿足范圍排除規則(如,”logout.aspx”),
Active scanning areas

這些選項讓你在主動掃描時定義執行哪些選擇,每個執行的選擇都會增加請求的次數和整體掃描的時間,你可以根據自己對應用程式技術的了解,打開或關閉單個選擇,或者對掃描要求有多嚴,例如,如果你知道應用程式不使用任何 LDAP,你就可以關閉 LDAP注入測驗,在對每一個插入點進行全面的漏洞檢查之前,或者你可以配置 Burp在應用程式上進行一次快速的檢查,只查找 URL和訊息體里引數里的 SQL注入和 XSS漏洞,
Passive scanning areas

被動掃描不會發生它自己的任何請求,并且每個被動檢測在電腦上的執行程序都是可以忽略不計的,不過,如果你對其中的一些項不感興趣或者不想看到它們的掃描結果,可以使單個的選項設為不可用,
7.報告:
當你完成測驗后,可以把所有的或者選中的問題以 HTML格式匯出,要這樣,就選中顯示出的匯總結果里需要的問題(可以選中多個主機,檔案夾,問題等等),然后在背景關系選單中選” report issues”,報告向導會讓你為自己的報告選擇許多項:
1.報告的格式(螢屏,列印),
2.問題的描述級別和包含的建議,
3.是否顯示請求和回應的細節,或者像提取的,或者不是,
4.發現的問題類別是包含的還是排除的,
5.是否通過型別,安全或者 URL來組織問題,
6.報告的標題,及其大小,等等,
跨站點腳本漏洞的報告會被優先顯示出來,所有的細節都列出來了,以友好的列印格式顯示出提取的應用程式回應的提取,像這樣:

你也可以使用 XML格式來報告這些問題,這樣能很容易地和其他工具整合在一起,XML有一個平整的結構,在每一個問題的報告中包含了問題的串列,通過 meta資訊來顯示問題型別,URL,等等,看起來像這樣的:
<!DOCTYPE issues [ <!ELEMENT issues (issue*)> <!ATTLIST issues burpVersion CDATA ""> <!ATTLIST issues exportTime CDATA ""> <!ELEMENT issue (serialNumber, type, name, host, path, location, severity, confidence, issueBackground?, requestresponse*)> remediationBackground?, issueDetail?, remediationDetail?, <!ELEMENT serialNumber (#PCDATA)> <!ELEMENT type (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT host (#PCDATA)> <!ELEMENT path (#PCDATA)> <!ELEMENT location (#PCDATA)> <!ELEMENT severity (#PCDATA)> <!ELEMENT confidence (#PCDATA)> <!ELEMENT issueBackground (#PCDATA)> <!ELEMENT remediationBackground (#PCDATA)> <!ELEMENT issueDetail (#PCDATA)> <!ELEMENT remediationDetail (#PCDATA)> <!ELEMENT requestresponse (request?, response?)> <!ELEMENT request (#PCDATA)> <!ELEMENT response (#PCDATA)> ]>
序列號是一個對其他單個問題的不同的長整數,如果你想從同一個 Burp實體上,多次匯出問題,你可以通過序列號來確認增加的新問題,
型別包含了一個用來唯一地確認查找的內容型別(SQL注入,XSS等等)的整數,在不同的 Burp實體間,這個值是穩定的,
名字包含了相應的問題型別的描述名字,
路徑包含了問題的 URL(不包含查詢字串),
位置包含了攻擊進入點的 URL和描述,以及相關項(一個特殊的 URL引數,請求訊息頭,等等),
其他的項,有些事可選的,用戶可以通過報告向導來選擇,能進行自我解釋,
六、BurpSuite的攻擊模塊(Burp Intruder):
1.Burp Intruder是什么:
Burp Intruser是一個對 web應用程式進行自動化的自定義攻擊的工具,
Burp Intruder不是一個點擊工具,要想高效地使用它,你需要明白目標應用程式是怎樣作業的,以及一些 HTTP協議的知識,在你使用 Burp Intruder進行攻擊之前,你需要調查清楚目標應用程式的功能和結構,尤其是再瀏覽器和服務器直接傳輸的許多 HTTP訊息,你可以使用標準瀏覽器和 Burp Proxy攔截和查看應用程式產生的請求和回應,當你確認了一些一些感興趣的 HTTP請求需要更嚴格的檢查時,你就已經為使用 Burp Intruder準備好,Burp Intruder是高度可配置的,并被用來在廣范圍內進行自動化攻擊,你可以使用 Burp
Intruder方便地執行許多任務,包括列舉識別符號,獲取有用資料,漏洞模糊測驗,合適的攻擊型別取決于應用程式的情況,可能包括:缺陷測驗:SQL注入,跨站點腳本,緩沖區溢位,路徑遍歷;暴力攻擊認證系統;列舉;操縱引數;拖出隱藏的內容和功能;會話令牌測序和會話劫持;資料挖掘;并發攻擊;應用層的拒絕服務式攻擊,要想知道關于使用 BurpIntruder執行的這類攻擊的討論細節,可以查看 The Web Application Hacker's Handbook的第13章,Burp Intruder有許多預設的攻擊”有效負荷”(在探索發現常規漏洞中有用的字串)串列,它包含了許多工具,這些工具動態地產生適合應用程式內的特定機制的攻擊載體,外部的檔案也可被加載并納入到 Burp Intruder(如,列舉用戶名的串列,新發型的漏洞的模糊字串),
核心動作就是通過這些 HTTP請求重復地攻擊,在調查階段確認有基礎請求派生的請求,Burp Intruder以特殊方式操縱這些基礎請求來確認或探測應用程式漏洞,它使用一個或多個有效載荷來替換基礎請求中的一部分來實作這個程序,可以為每次攻擊配置時間和執行
方案,同時可以使用多執行緒來產生請求,限制請求可以防止入侵檢測系統的探測,拒絕服務模型可以使用請求來轟炸服務器,這時會忽略所有接收到的回應,
當一次執行時,細節結果表格也就產生,顯示出從服務器上接收到的每個請求的回應,結果里包含了所有的相關資訊,可以使用它來查明一些感興趣或成功的回應,除了常見的每次攻擊的標準結果,在運行時可以對這些結果執行許多自定義的測驗,這些結果同樣被記錄下來,例如,可以為 Burp Intruder精確配置指定一些 HTML頁面上的資訊(如,用戶資訊頁面上的個人細節資訊),并且在每個結果里記錄這些資訊,可以為做進一步操作匯出所有結果,或者把它們當做輸入檔案進行下一步攻擊,
Burp Intruder是一個 Java應用程式,可以在任何有 Java Runtime環境的平臺上運行,它需要 1.5版本或者更新的,JRE可以免費從 java.sun.com上獲得,
2.配置 Burp攻擊模塊( Intruder):
Burp Intruder控制面板讓你在他們的數字選項里同時能配置一個或多個攻擊,你可以使用 Intruder選單創建一個新的選項或者重命名現存的選項,在一些子選項(target, positions, payloads, options)里進行每次攻擊配置,創建一個新攻擊的最簡單的方法是通過其他 Burp工具(如代理歷史記錄或站點地圖)定位相關的基礎請求,然后使用背景關系選單里的” send to intruder”,這將會用相關的細節來填充 target和 positions選項,當你創建一個攻擊選項時,可以通過 Intruder選單來控制怎樣設定 payloads和 options選項,通過這種方式,你可以在第一次攻擊選項(如模糊所有引數和搜索錯誤訊息)里設定一個標準的攻擊配置,然后把這些標準復制到發送給 Intruder的每一次新攻擊里,你可以使用Intruder選單在任意選項之間復制攻擊的配置,或者保存加載攻擊配置,要開啟一次攻擊,需要設定攻擊配置資訊,然后在 Intruder選單上選擇” start attack”,下面的部分里描述了配置選項的細節,要加載一個保存的攻擊,需在 Intruder選單上選擇” open saved attack”,然后選擇需要的檔案[Professional]版本,
33.目標選項:
這個選項是用來配置目標服務器的細節:

“host”區域是用來指定目標服務器的 IP地址或者主機名,”port”區域是用來指定 HTTP/S服務的埠號,”use SSL”框是用來是否使用 SSL連接,
4.位置選項:
這個選項是用來配置在攻擊里產生的所有 HTTP請求的模板:

主文本編輯器是用來設定基礎請求的內容,以及在攻擊時,標記出有效負荷插入到單個HTTP請求的位置,這有一個有許多功能的背景關系選單,
設定攻擊模板的最簡單的方法是先定位出在一個其他 Burp工具里的相關請求,然后選中” send to intruder”選項,你可以從 Burp Suite里的任何顯示出一個 HTTP請求或回應的地方發送請求,也可以從 Burp Proxy歷史記錄,站點地圖里的視圖樹或者表格,以及從一個準備執行攻擊的 Burp Intruder:

使用一對§字符來標記出有效負荷的位置,在這兩個符號直接包含了模板文本的內容,當把一個有效負荷放置到一個給出的請求的特殊位置上時,就把這§符號放到這個位置,然后在兩個符號之間的出現的文本都會被有效負荷替換,當有個特殊位置沒有為一個給出的請求安排有效負荷時(這只適用”sniper”攻擊型別—看下面),那個位置的§字符會被洗掉,出現在它們之間的文本不會變化,
當使用 Burp Suite發送一個其他地方的請求時,Burp Intruder會對你最想放置有效負荷的位置做一個最好的猜測,并且它把這些放置在每個 URL和主體引數的值里,以及每個cookie里,每個標記和它中間的文本都會被加亮以顯得更清晰,你可以使用 Intruder選單上的選項標記的位置是要替換還是附加現有的引數值,在上面的請求編輯器里,指出了定義位置的數量和文本模板的大小,
你可以使用選項上的按鈕來控制位置上的標記:
1. add § —在當前游標位置插入一個位置標記,
2. clear § —洗掉整個模板或選中的部分模板里的位置標記,
3. auto § —這會對放置標記的位置做一個猜測,放哪里會有用,然后就把標記放到相應位置,這是一個為攻擊常規漏洞(SQL注入)快速標記出合適位置的有用的功能,然后人工標記是為自定義攻擊的,
4.refresh —如果需要,可以重繪編輯器里有顏色的代碼,
5.clear —洗掉整個編輯器內容,
注意自動放置有效負荷位置需要識別出當前選中的請求模板內的 XML格式的資料,一些應用程式會在一個請求主體里發送封裝的 XML格式的資料,如:
POST /function HTTP/1.0 Content-Type: multipart/form-data; boundary=weidhwiderfhwiuehwiuehfwerrf Content-Length: 202 --weidhwiderfhwiuehwiuehfwerrf Content-Disposition: form-data; name="data" <data> <param1>foo</param1> <param2>bar</param2> <param3>123</param3> </data> --weidhwiderfhwiuehwiuehfwerrf—
如果你在整個訊息里都執行自動放置有效負荷的位置,Intruder會用單個插入點標出所有的 XML塊,這些塊未必都是你想要的,相反,如果你手動地選出那些 XML塊,自動放置功能是識別出包含 XML的選擇,并把單個 XML引數值標記為插入點,
“attack type”下拉選單是用來定義 Burp Intruder行為的一個關鍵方面—為單個請求把有效負荷放置特定位置的方式,下面列出 4個可能的攻擊型別:
sinper —這使用了單個有效負荷集合,它的目標是在每個位置上,并把每個有效負荷按順序地插入到這些位置上,請求中的不是目標的位置不受影響—位置標記會被洗掉并且它們之間的模板里的文本不會變化,這類攻擊型別對單獨使用資料域來測驗常規漏洞 (如,跨站點腳本)非常有效,攻擊產生的大量請求是位置數量和有效負荷數量的產品,battering ram —這使用了單個有效負荷集合,它是通過有效負荷迭代,并一次在所有定義的位置插入有效負荷,當一次攻擊需要在 HTTP請求(如,Cookie訊息頭和訊息體里的用戶名)中的多個位置上插入相同的有效負荷時,這個攻擊型別非常有用,攻擊產生的所有請求數量就是有效載荷的數量,
pitchfork —這個是用在多個有效負荷集合,在每個定義的位置有不同的有效負荷集合(最多 8個),攻擊同時通過所有的有效負荷集合進行迭代,并在每一個位置上插入一個有效載荷,例如,第一個請求會把第一個有效負荷集合里第一個有效負荷插入到第一個位置,第二個有效載荷集合里的第一個有效負荷插入到第二個位置,第二個請求會把第一個集合里的第二個有效負荷插入到第一個位置,把第二個有效負荷里的第二個有效負荷插入到第二個位置,等等,當攻擊需要將不同的但相關的輸入插入到 HTTP請求(如,一個資料域里的用戶名,以及在其他資料域里的一個和用戶名相關的 ID號)的多個位置里時,這個攻擊型別會有用的,攻擊產生的所有的請求數量是最小有效負荷集合里的有效負荷數,
cluster bomb—這個使用了多個有效負荷集合,每個定義的位置(最多 8個)都有一個不同的有效負荷集合,攻擊會按照每個有效負荷集合的順序進行迭代,于是所有的有效負荷排列組合都會被測驗,例如,如果有 2個有效負荷位置,攻擊會把第一個有效負荷集合里的第一個有效負荷放置在第一個位置,在位置 2里會迭代第二個有效負荷里的所有有效負荷;然后他會把第一個集合里第二個有效負荷放在第一個位置,然后在位置 2上迭代集合 2里的所有有效負荷,當攻擊需要在 HTTP請求(如,一個引數里的用戶名和另一個引數里的密碼)里插入不同的并且不相關的輸入時,這個攻擊型別會很有效,攻擊產生的請求數量是在所有定義集合里的有效負荷數量—應該是最大值,
5.有效負荷選項:
這個選項是用來配置一個或多個有效負荷的集合,如果定義了 “ cluster bomb”和”pitchfork”攻擊型別,然后必須為每定義的有效負荷位置(最多 8個)配置一個單獨的有效負荷,使用” payload set”下拉選單選擇要配置的有效負荷,對于每個有效負荷集合,都會定義一個有效負荷 “源”(如,preset list, character blocks,brute forcer)來使用,并且在每個有效負荷上執行多種附加的處理,在 Burp Intruder中有大量的可用的有效負荷源,其中的一些是高度可配置的,并且提供了許多自定義攻擊,通過下拉選單為當前有效負荷選中源,每個有效負荷源在下面都一一介紹,
6.有效負荷源
Preset list
這是一個簡單的有效負荷源,配置有效負荷的預設串列:

配置串列的主控制臺在面板的右下方,可以通過文本框和”add”按鈕手動地添加項,可以通過下拉選單” add from list”來添加有用的有效負荷預設串列,包括常用的用戶和密碼,以及用來探測像 SQL注入的這樣常規漏洞的字串,”load”按鈕是用來匯入檔案的,”paste”按鈕式用來添加粘貼板上的串列項, “delete”按鈕洗掉選中的項,”clear”按鈕洗掉串列里的所有項,
你可以通過” add from list”選單自定義有效負荷的預設串列,首先,選擇 Intruder選單里的” configure preset payload lists”,然后選擇你自己的包含有效負荷檔案的目錄,你可以使用”copy”按鈕把 Burp的內置有效負荷串列復制到你自定義的目錄,和你的有效負荷串列一起使用:

Runtime file
這個有效負荷源配置了一個外面的文本檔案,在運行時可以通過這個檔案讀取里面的有效負荷,當需要一個非常大的預設有效負荷串列時,這很有用了,避免了把整個串列都放到記憶體里,從檔案里的一行讀取一個有效負荷,因此有效負荷不會包含換行符,

Custom iterator
這個有效負荷源提供了一種強大的方式,通過給出的模板,來產生自定義的字符和其他項的排列,例如,使用表單里個人編號 AB/12,工資應用程式來識別單個人員;你需要通過迭代所有的人員編號來獲取所有個人細節,

自定義的迭代器定義的用來產生排列的位置不能超過 8個,每個位置使用一個串列來配置,以及一個可選的分隔符,這個分隔符是被插入到那個位置和下一個之間,在上面的例子中,位置 1和 2是用 A-Z項來配置,位置 3和 4用 0-9項來配置,并且位置 2會被設定分隔符/,當執行攻擊時,自定義的迭代器會迭代每個位置里的項,以覆寫到所有的排列可能,
因此,在這個例子中,有效負荷的總數量等于 26*26*10*10.“scheme”下拉選單用來為自定義迭代器選擇一個預設的配置,這些可以被許多標準的攻擊或者自定義攻擊的修改使用,可用的 scheme有”目錄/檔案擴展名”,這些可以被用來列舉web內容,”密碼+數字”可以為密碼猜測攻擊提供一個擴展的字串列,

在右下方得控制按鈕是用來配置每個位置上的項,他們的功能和在 preset list source中一樣,”clear”按鈕是洗掉自定義迭代器上所有位置里配置,
Character substitution
這個有效負荷源需要一個有效負荷項的預設串列,在自定義規則下,通過用不同字符把替換項里的單個字符,然后從這些項里產生許多有效負荷,這個有效載荷源在密碼猜測攻擊中很有用,例如,在字典單詞上產生許多變化:
在右下方的控制項是用來配置預設項的串列,它們的功能和上面的一樣,右面的復選框串列是用來配置提交規則,當攻擊執行時,字符提交源會按順序地處理每個預設項,對于每個項,它都會產生一些有效負荷,來包含通過提交規則提交的字符的所有排列,例如,對于上面截圖里的第一個項,就會產生下面的有效負荷:
aahed
4ahed
a4hed
44hed
aah3d
4ah3d
a4h3d
44h3d
Case substitution
這個有效負荷源需要一個有效負荷項的預設串列,調整每一項里的字符,從這些項里產生出一個或多個有效負荷,這個有效負荷源在猜測密碼攻擊時,會很有用,例如,在字典單詞上產生許多變化:

右下方得控制項是用來配置預設項的串列,它的功能和上面的一樣,
右邊的復選框是用來配置提交規則,可用的規則執行下面的功能:
no change —這個項是讓不要修改有效負荷集合,
to lower case —所有的字母被轉換成小寫的,并且結果添加到有效負荷集合,
to upper case —所有的字母被轉換成大寫的,并且結果添加到有效負荷集合,
to Propername —項里的第一個字母轉換成大寫,后面的字母轉換成小寫,結果添加到有效負荷集合,
to ProperName —項里的第一個字母轉換成大寫,后面的字母不變,結果添加到有效負荷集合,
當攻擊執行時,提交源會按順序執行每一個預設項,對于每個項,它都會使用選中的提交規則產生一個有效負荷,如果這個規則產生了一個全新的有效負荷,它就會被加到有效負荷集合里(如,重復的有效負荷會被丟棄),例如,對于上面截圖里的第一個項,就會產生下面的有效負荷:
aahed
AAHED
Aahed
Recursive grep
這個有效負荷源帶有”extract grep”功能(下面會介紹),它允許通過對早期請求的回應來遞回地產生有效負荷,”extract grep”功能會通過匹配一個正則運算式來捕獲一個服務器回應的一部分,和"recursive grep"一起,從先前的服務器回應捕獲的文本將用作后續請求的有效負荷,

這可以用在許多的列舉任務里,例如,可以用來通過 SQL注入來列舉資料庫的內容,遞回查詢格式為:
union select name from sysobjects where name>'a'
服務器的錯誤資訊會泄露一個資料庫物件的名字:
Syntax error converting the varchar value 'accounts' to a column of data type int.
使用” accounts”,再查詢確認下一個物件,使用 recursive grep有效負荷可以簡單地自動執行這個任務,進而快速地列舉出資料庫里的所有物件,有效負荷里使用的第一個請求必須是手動指定的,當重復連續地發現 recursive grep項時,就可以停止了,因為這就說明了列舉已經完成,注意由于有效載荷的本質屬性,使用它的攻擊就不能進行多執行緒請求,
Illegal Unicode這個有效負荷源需要一個有效負荷項的預設串列,在每一項里用指定字符的非法Unicode編碼替換字符本身,從這些項里產生出一個或者多個有效負荷,在嘗試回避基于模式匹配的輸入驗證時,這個有效負荷會有用的,例如,在防御目錄遍歷攻擊時../和\..序列的期望編碼的匹配,

右下方的控制項是用來配置預設項的串列,它的功能和上面的一樣,頂端的 2個文本框是來配置在每個預設項里提交的字符(*那里),以及為非法編作基礎的字符(/那里),可以通過字母的 ASCII編碼或者 2位十六進制編碼來指定這個字母—這對于指定那些無法列印的字符是很有用的,如空字符,
中間的控制項是用來產生非法編碼的型別,在下面解釋:
maximum overlong UTF-8 length Unicode編碼方案允許最多使用 6位元組表示一個字符,使用一種型別就可以正確地表示出 (0x00-0x7F) Basic ASCII字符,然而,使用多位元組的Unicode方案也能表示出它們(如,”overlong”編碼),下拉選單用來指定是否使用超長編碼,以及應該設定的最大使用型號,
illegal UTF-8 variants如果選擇的最大超長 UTF-8長度為 2位元組以上,這個選項是可用的,當使用多位元組編碼一個字符時,第一個位元組后面的位元組應該用 10XXXXXX這樣的二進制格式,來指出后續的位元組,然而,第一個位元組里最有意義的位會指出后面還有多少后續位元組,因此,Unicode編碼例程會安全地忽略掉后續位元組的前 2位,這就意味著每個后續位元組可能有 3個非法變種,格式為 00XXXXXX,01XXXXXX和 11XXXXXX,如果選中這個選項,則非法 Unicode有效負荷源會為每個后續位元組生成 3個附加編碼,
max permutations如果選擇的最大超長 UTF-8長度為 3位元組以上,這個選項可用,并且選中” illegal UTF-8 variants”,如果” max permutations”沒被選中,則在生產非法變種時,非法 Unicode有效負荷源會按順序處理每個后續位元組,為每個后續位元組產生 3個非法變種,并且其他的后續位元組不會改變,如果” max permutations”被選中了,然而,非法 Unicode有效負荷源會為后續位元組生成所有的非法變種排序—如,多個后續位元組會同時被修改,在目標系統上回避高級模式匹配控制時,這個功能就會很有用,
illegal hex這個選擇基本上一直可用,當使用超長編碼和后續位元組的非法變種(如果選中)生成非法編碼項串列時,通過修改由此產生的十六進制編碼可能會迷惑到某種模式匹配控制,十六進制編碼使用字符 A—F代表十進制 10—15的值,然而有些十六進制編碼會把 G解釋為 16,H為 17,等等,因此 0x1G會被解釋為 32,另外,如果非法的十六進制字符使用在一個 2位數的十六進制編碼的第一個位置,則由此產生的編碼就會溢位單個位元組的大小,并且有些十六進制編碼只使用了結果數字的后 8個有效位,因此 0x1G會被解碼為 257,而那時會被解釋為 1,每個合法的 2位數的十六進制編碼有 4—6種相關的非法十六進制表示,如果使用的是上面的編碼,則這些表示會被解釋為同一種十六進制編碼,如果”illegal hex”被選中,則非法 Unicode有效負荷源會在非法編碼項串列里,生成每個位元組的所有可能的非法十六進制編碼,
max permutations如果選中的最大超長 UTF-8長度為 2位元組以上并且” illegal hex”也被選中,則這個選項可用,如果” max permutations”沒被選中,在生成非法十六進制編碼時,非法 Unicode有效負荷源會按順序處理每個位元組,對于每個位元組,會生成 4—6個非法十六進制編碼,其他的位元組不變,如果” max permutations”被選中,然而,非法 Unicode有效負荷源會為所有的位元組,生成非法十六進制的所有排序—如,多個位元組會被同時修改,在目標系統上回避高級模式匹配控制時,這個功能會非常有用,
add % prefix如果選中這個選項,在產生的有效負荷里的每個 2位數十六進制編碼前面,都會插入一個%符號,
lower case hex這個選項決定了是否在十六進制編碼里使用大小寫字母,
max encodings這個選項為會產生的非法編碼數量放置了一個上界,如果大量使用超長編碼或者選中了最大排序,這個選項會很有用,因為那會生成大量的非法編碼,當攻擊執行時,這個有效負荷源會迭代所有預設項串列,在非法編碼集合里,每個預設項替換每個項里的指定字符的所有實體,
Character blocks
使用一個給出的輸入字串,這個有效負荷源產生指定大小的字符塊,在對本機 (非托管)上運行的軟體進行探測緩沖區溢位和其他邊界條件漏洞時,這個選項很有用,

“string”欄位指定了輸入字串,從這里產生字符塊,”min”和”max”欄位指定了產生字符塊的最小和最大長度,”step”欄位指定了每個字符塊的長度增量,
Numbers
這個有效負荷產生的數字,是順序的或者隨機的,使用一個指定的格式:

“from”和”to”欄位指定了產生的最小和最大的數,如果選中” sequential”,數字就以”from”欄位里的值作為起點,以” step”欄位里的值做為增量,如果選中” random”,”howmany”欄位指定生成數字的數量,數字是以十進制或者十六進制的格式生成,如果選中十六進制,則”form”,”to”以及”step”欄位必須是十六進制整數;否則是十進制的整數或分數,在右手邊的控制項指定了要用到的數字格式,Dates這個有效負荷在一個指定的范圍內,在一個指定的間隔內,以一個指定的格式,產生日期,這個選項在資料挖掘(拖出在不同天里的訂單條目)或者暴力攻擊(猜測一個由生日組成的用戶認證)中有用,

產生的日期是從”from”控制項里指定的日期開始,使用”step”控制項里指定的間隔來增加,直到或者包含了”to”控制項里的指定日期,在”format”下拉選單里可以選擇一些預設的日期格式,或者自定義一個可以在文本欄位里輸入的日期格式,下面的例子說明了可以用來指定自定義的日期格式的編碼:
E Sat
EEEE Saturday
d 7
dd 07
M 6
MM 06
MMM Jun
MMMM June
yy 03
yyyy 2003
/ . : etc
/ . :
Brute forcer
這個有效載荷源產生一個指定長度的有效載荷集合,這里面包含了指定字符集的所有排序可能,

Null payloads
這個有效載荷源能產生”null”有效載荷—如,0長度的字串,它可以產生一個指定數量的空有效載荷,也可一直繼續下去,

當一次攻擊需要重復同一請求,而不是做修改的基礎模板,這個有效載荷就有用了,要完成這個作業,把一對位置標記一起放在請求模板的一個位置,這個可以在許多攻擊中使用,例如測序分析中獲取 cookie,應用層的拒絕服務攻擊,這里通過重復發送請求以在服務器上執行一個超載任務,保持一個用在其他地方進行斷斷續續測驗的會話令牌,Char frobber
這個有效載荷是在每個有效載荷位置現有基值或者知道的字串上進行操作的,它通過一次一個字符,在基類字串上回圈,把那個字符 ASCII碼加 1,

當測驗引數值或部分值哪個更影回應用程式的回應,這個有效載荷源就有用了,特別是在測驗復雜的會話令牌的哪一部分實際上是用來跟蹤會話狀態的,如果你修改會話令牌里的單個字符的值后,在你的會話里,請求仍然能被處理,則就有可能是這個字符不是用來跟蹤你的會話的,
Bit flipper
這個有效載荷是在每個有效載荷位置現有基值或者知道的字串上進行操作的,它通過一次一個字符,在基類字串上回圈,翻轉順序上的每(指定的)一位,

你可以配置位翻轉要么為了操作字面基礎值,要么把基礎值當成 ASCII十六進制字串,例如,如果基礎值是”ab”,則通過字面字串操作和翻轉所有的位,產生下面的有效載荷:
`b
cb
eb
ib
qb
Ab
!b
áb
ac
a`
af
aj
ar
aB
a"
aa
如果是”ab”當做一個 ASCII十六進制字串,然后翻轉所有位,就得到下面有效載荷:
aa
a9
af
a3
bb
8b
eb
2b
這個有效載荷源非常有用在對 char frobber相似的情況下,但你需要有細微控制權,例如,如果一個會話令牌或者其他引數值包含一個有意義的資料,但這個資料使用了一種 CBC模式密碼加密了,就由可能通過修改前面密碼塊里的位來系統地改變部分加密資料,在這種情況下,你可以在有效載荷源上使用位翻轉來確定修改加密值里的單個位的影響,弄清楚應用程式是否有漏洞,
Username generator
這個有效載荷源需要人名作為輸入,使用許多常規方案來產生用戶名,

例如,提供”peter weiner”這個名字,就會產生 115個可能的用戶名,如下:
peterweiner
peter.weiner
weinerpeter
weiner.peter
peter
weiner
peterw
peter.w
wpeter
w.peter
pweiner
p.weiner
weinerp
weiner.p
,,,
如果你的目標是一個特殊人物的用戶,這個有效載荷源就有用了,并且你不知道應用程式里使用的用戶名或電子郵件地址方案,
有效載荷的處理(Payload processing)
對于每個有效載荷集合,除了使用有效載荷的”源”,在每個有效載荷上可能執行定義的許多附加處理程序,選中有效載荷源執行所有操作后,這個處理程序就開始了:

執行佇列中的定義規則,并且通過切換開關來幫助排除配置中的問題,可用下面型別的
規則:
1.添加前綴
2.添加后綴
3.匹配/替換
4.子字串(從一個指定的偏移到一個指定的長度)
5.轉換子字串(從有效載荷的結尾索引的子字串)
6.修改狀況(一些為 case substitution的有效載荷源選項)
7.編碼(URL,HTML,Base64,ASCII十六進制以及多平臺的組合字串)
8.解碼(URL,HTML,Base64,ASCII十六進制以及多平臺的組合字串)
9.哈希表
10.添加原來的有效負荷(如果你需要在同一個有效載荷里包含原來的和哈希格式,這會有用),
最后,你可以配置最終的有效載荷里的字符,把它進行 URL編碼,這樣在 HTTP請求里更安全地傳輸,

建議使用最終的 URL編碼配置,而不是一個有效載荷過度規則,因為 payload grep選項是用來在使用最終的 URL編碼之前為顯示的有效載荷檢查回應,
選項卡(Options tab)
這個選項里包含了許多配置控制著單個攻擊行為的選項,

如果選中”update Content-Length header”框,Burp Intruder會使用每個請求的 HTTP主體長度的正確值,添加或更新這個請求里 HTTP訊息頭的內容長度,這個功能對一些需要把可變長度的有效載荷插入到 HTTP請求模板主體的攻擊是很有必要的,這個 HTTP規范和大多數 web服務器一樣,需要使用訊息頭內容長度來指定 HTTP主體長度的正確值,如果沒有指定正確值,目標服務器會回傳一個錯誤,也可能回傳一個未完成的請求,也可能無限期地等待接收請求里的進一步資料,
如果選中”set Connection: close”框,則 Burp Intruder會添加或更新 HTTP訊息頭的連接來請求在每個請求后已關閉的連接,在多數情況下,這個選項會讓攻擊執行得更快,注意:早期的 Burp Intruder版本在這里包含往請求里添加 cookie頭的選項,這是依據不同請求的回應,現在這些配置被洗掉了,你可以使用 suite-wide session handling support來代替,

concurrent threads設定決定了攻擊是否使用單執行緒或多執行緒來同步地加載請求,使用多執行緒能迅速地加快一次大型攻擊,影響時間的主要因素就是處理請求和接收回應之間的延時,這可以用來測驗應用程式漏洞的并發處理,這也可用來增加應用層拒絕服務的效果,retry設定決定了如果產生網路錯誤(如,連接被拒絕或超時),Burp會重發一個請求的次數,以及等待的時間間隔,
throttle設定用來配置請求之間需要的延時,可能會需要一個固定的延時作為隱形的防護措施,來保留帶寬和處理能力,以避免影響其他活動,這樣就可以定期執行請求操作,如保持一個斷斷續續地用在其他地方測驗的會話令牌存活,一個可變的延時會對自動探測會話超時值很有用,

start設定決定了攻擊在加載時是否立即執行,或者在一個指定的延時后開始,或者一直等到選中”恢復”命令,如果配置的一個攻擊需要在一些未知點上執行,或者為以后的使用保存,那么這個功能就有用了,
storage設定決定了攻擊是否會保存單個請求和回應的內容,保存請求和回應需要在消耗臨時目錄里的磁盤空間,但能讓你在攻擊時完整地查看它們,如果需要可以重復發請求,也可以把它們發送到其他 Burp工具上,
如果選中”make unmodified baseline request”,這時除了配置攻擊請求,Burp還會除了模板請求,使用所有有效載荷位置來設定它們的基礎值,這樣請求在結果表格里會以#0項顯示出來,
如果選中”DoS mode”,則攻擊會和平常一樣地處理請求,但不會等待處理服務器回傳的回應,當每個請求都處理完后,關閉 TCP連接,這個功能可以通過重復地發送請求,使服務器執行超負荷任務,來對有漏洞的應用程式執行應用層的拒絕服務攻擊,如果選中”store full payloads”,Burp會完整地保存每一個結果的有效載荷值,這個選項會消耗一些記憶體,如果你想在運行時執行某種操作,這個就可能是需要的了,如修改有效載荷的 grep設定,重新處理一個使用修改請求模板的請求,

“grep”設定是用在運行時,配置在服務器回應里執行的模式匹配測驗,這有 3種測驗型別:
1. match grep —這個是用來檢查每個服務器回應里指定運算式,要么簡單的模式匹配,要么 Perl—like正則運算式,對于每個指定的運算式,攻擊會在結果表里包含一個列來指明是否找到一個匹配,基本功能有廣泛的應用,例如:密碼猜測攻擊,掃描”密碼錯誤”或者”登陸成功”的短語,SQL注入漏洞測驗,掃描包含”ODBC”“error”的訊息,等等,如果使用正則運算式來匹配運算式,可能會包含換行符,
2. extract grep —這個是用來檢查每個服務器回應里指定運算式,是否存在緊隨匹配運算式的要提取的文本(知道指定的符號或者最大長度),對于每個指定的運算式,攻擊都在結果串列里包含一個從服務器回應里提取的文本的列,這個功能可以用來進行資料挖掘,通過資料挖掘能獲得 web頁面里的有用資訊,并且需要一個提取這些資訊的自動化方法,例如,如果你獲得了一個通向管理員用戶的頁面,通過它能夠修改由 URL查詢字串指定的 ID的用戶的賬戶資訊,這時重復地通過用戶 ID來提取每一位用戶的用戶名和密碼,
3. payload grep —這個是用來檢查每個服務器回應中的用在相關請求中的有效載荷字串,這個功能在探測跨站點腳本和其他回應注入漏洞中會有用,這漏洞產生在用戶把輸入動態插入到應用程式的回應里,
如果選中”match against pre-encoded payloads”,則會搜索回應里的每一個應用編碼之前的有效載荷字串的原來格式,設定的這些常常都是很有必要的,例如,如果你使用 XSS測驗有效載荷里的印刷字符,這通常需要在有效載荷處理選項里的 URL編碼,但如果應用程式有漏洞,就會在回應里顯示出每個編碼格式,

這重定向設定控制了 Burp Intruder在執行攻擊時,是否跟蹤 HTTP重定向(如,有 3xx狀態碼和包含一個新 URL的 Location header),如果配置跟蹤重定向,則 Intruder在接收到一個重定向時,會請求這個重定向 URL(如果需要,最多跟蹤 10個重定向),并在結果里記錄下后續回應的細節,在結果表格的一個列里會顯示是否為每個結果跟蹤重定向,你可以配置是否只跟蹤站點(如,相同協議,主機和埠)重定向,或者只跟蹤范圍內(在目標范圍定義的)重定向,或者跟蹤所有的,
當一個應用程式對許多型別的輸入都回傳一個 3XX的回應,這個跟蹤重定向的選項就會有用,在請求重定向目標時,會回傳應用程式處理請求的感興趣的特征,例如,當使用模糊技術測驗常規漏洞時,應用程式會頻繁地回傳一個到錯誤頁面的重定向,這個頁面可能包含了關于錯誤本質的有用資訊,通過這個錯誤能診斷出像 SQL注入這樣的問題,
注意在跟蹤重定向時,大多數情況下,要使用單執行緒進行攻擊,例如,如果應用程式存盤了下一個指向重定向目標的請求回傳的會話資訊,同樣要注意自動地跟蹤重定向有時會給你的攻擊帶來一些麻煩—例如,一些應用程式會對一些惡意請求回應到一個注銷頁面的重定向,這時跟蹤重定向會導致你的會話終止,然而它不來不應該這樣做,
如果選中”process cookies in redirects”,當跟蹤重定向上時,任意設定為 3XX回應 cookie都會被提交,例如,當你嘗試暴力進行登錄挑戰時,通過重定向頁面來指示登錄結果,并且每次的登錄嘗試都會有創建一個新的會話,這個就需要這個選項了,
啟動一次攻擊(Launching an attack)
為了創建一次新的攻擊,使用控制面板選項來設定需要的配置資訊,然后選擇 Intruder選單上的”start attack”,要想加載一個保存的攻擊,選擇 Intruder選單上的”open saved attack”,然后選擇所需的檔案,
當執行一次新的攻擊時,會在指定的配置資訊上執行許多驗證審查,這包括驗證有效載荷位置和有效載荷集定義是否正確,時序和 grep設定是否可行,等等,有些故障會產生一些阻礙執行攻擊的錯誤;產生的其他警告則會被忽略,
每次攻擊都打開了一個分離的視窗,這個視窗顯示出攻擊產生的結果,使你能夠實時修改攻擊配置,同樣也包含了的一系列控制選項,有保存結果,服務器回應和攻擊自身,注意:當修改一個正在運行的攻擊配置時,你應該小心地處理,在修改之前最好暫停,
結果選項(Results tab)
下面顯示的就是一次執行的攻擊的結果視圖例子,在目標 web站點上列舉的基本內容:

這次攻擊使用了 sniper攻擊型別,對一系列常用的 web目錄進行請求,對于這次攻擊,結果視圖顯示了默認的每次請求次數,使用的有效載荷位置,插入的有效載荷,從服務器上接收的 HTTP狀態碼,是否產生了超時或錯誤,以及服務器回應的長度,附加的結果列顯示了,每個請求的"received response"和"finished response"計時器,以及接收到的 cookie,許多配置選項,如 grep功能,這會讓附加列在結果視圖里顯示出來,使用”view”選單來隱藏和顯示這些列,通過單擊結果列的相關標題頭,來對整個結果集進行排序(按住 shift單擊可以轉換排序方式),按住 Ctrl+單擊標題可以復制該列的內容,[專業版]
一個對攻擊結果進行有效解釋的關鍵部分,定位在感興趣或成功的服務器回應,以及產生這些響應的請求,通常情況下感興趣的回應分為下面幾種:
1.一個不同的 HTTP狀態碼,
2.一個不同長度的回應,
3.某個運算式存在或不存在,
4.一個錯誤或超時的產生,
5.接識訓完成回應的時間,
例如,在一個探索內容的測驗中,請求一個現存的資源,會回傳一個長短不一的”200OK”的回應,然而請求一個不存在的資源時,會回傳一個”404 not found”的回應,或者回傳一個包含固定長度的自定義出錯頁面,在一次密碼猜測攻擊中,登陸失敗會產生一個包含關鍵字”login failed”的”200 OK”的回應,然而成功的登陸會產生一個”302 Object moved”的回應,或者一個包含關鍵字”welcome”的不同長度的”200 OK”的回應,
Burp Intruder可以提供一些幫助來確認上面的那些區別,grep功能可以用來標記那些已知關鍵字的回應,或者從頁面的關鍵部分提取感興趣的資訊,在結果視圖里,可以通過單擊列標題來對結果排序,或者按住 shift+點擊標題來倒置排序,在上面的例子里,HTTP狀態碼是感興趣結果的主要區別,并且可以通過排序查明這些,
你可以通過添加批注和加亮來注釋一個或多個項:

你可以使用最左邊度的串列里的下拉選單來加亮單個項:

你可以通過雙擊并編輯單元格就地對單個項進行注釋:

當你已經注釋好感興趣的請求時,以后你就可以使用列排序和顯示過濾器來快速地找到這些項,
如果攻擊被配置為保存請求或/和回應,你就可以通過預覽表格來查看這些,或者通過雙擊來顯示這些請求和回應的細節,這些顯示提供了細節分析和呈現出每個 HTTP訊息,"previous"和"next"按鈕可以用來回圈結果集,如果結果視圖里的表已被排序,則結果會以當前序列顯示在那個視圖里,

如果攻擊是被配置來跟蹤重定向,在初始清求和最后回應的旁邊,所有的中間回應和請求都會被顯示出來,
如果你使用”action”按鈕來發送請求或回應到其他 Burp Suite工具里,如 Repeater,你可以在結果表里的項上右擊來顯示一個有許多選項的背景關系選單:

你可以發送選中的項到其他工具,添加多個項到 Suite站點地圖上,使用批注和加亮來注釋這些項,或者把項標記為重新請求,如果網路錯誤或其他問題影響了一些結果,這個選項就會有用了,如果你在攻擊時修改了一些基礎請求模板或者其他的項,如果可以,要被重發的請求會使用當前的配置進行重組,于是,例如,如果你的應用程式會話在攻擊中被部分地終止了,你可以修改基礎會話模板使用一個新的會話令牌,并重新處理任何失敗的請求,使用你的新會話來執行,
在結果表的頂端是一個過濾欄,你可以使用它來隱藏一些結果,有 HTTP狀態碼,搜索項,以及用戶使用的注釋:

和過濾器一樣,通過選中結果表里的一個或多個項,然后選擇背景關系選單里的”delete”,你可以永久地洗掉結果里的項,
7.結果選單:
結果視圖里包含了許多有控制攻擊命令的選單,和保存結果,服務器回應和攻擊自身,它們將在下面為大家介紹,
8.攻擊選單:
這里包含了暫停,繼續,重復攻擊的指令,
9.保存選單:
attack—這個是用來保存當前攻擊的一個副本以及結果,從 Burp Intruder控制面板里,加載保存檔案作進一步使用,
results table —這個是用來把結果串列保存為一個文本檔案,可以選擇單個的行或列,以及整個表來保存,可以配置區域分隔符,這個功能是用于把結果匯出到一個電子表格上作進一步分析,或者保存單個列(如使用提取 grep功能)到一個輸入檔案里,用于作進一步攻擊或者其他工具上,
server response —這個是用來保存接收到的服務器對請求作出的完整回應,這些可以到自己的檔案(按順序編號)里,也可以串聯到序列里的單個檔案,attck configuration—這是用來保存當前執行攻擊(不是結果)的配置,使你能夠加載那個配置到 Intruder主控制面板來配置出一個相同或相似的攻擊,
10.視圖選單:
這包含了查看或隱藏結果表里的每個可用的資料列 (這些列的可用性取決于當前攻擊的配置),
若希望更多的了解BurpSuite的介紹,請訪問第四篇(滲透測驗之BurpSuite工具的使用介紹(四)):https://www.cnblogs.com/zhaoyunxiang/p/16001087.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/442810.html
標籤:其他
