BurpSuite簡介
BurpSuite是進行Web應用安全測試集成平臺。它將各類安全工具無縫地融合在一塊兒,以支持整個測試過程當中,從最初的映射和應用程序的攻擊面分析,到發現和利用安全漏洞。Burpsuite結合先進的手工技術與先進的自動化,使你的工做更快,更有效,更有趣。在安全人員經常使用工具表中,burpsuite排在第13位,且排名在不斷上升,因而可知它在安全人員手中的重要性。Burpsuite的模塊幾乎包含整個安全測試過程,從最初對目標程序的信息採集,到漏洞掃描及其利用,多模塊間高融合的配合,使得安全測試的過程更加高效。html
軟件版本
本文中使用的軟件版本爲Burp Suite Professional v2.0.11beta,1.6版本中有Spider模塊,2.0版本中未找到,故不作介紹。web
主要模塊
介紹Burp Suite中的主要模塊,以下:
正則表達式
- Dashboard(儀表盤)——顯示任務、實踐日誌等。
- Target(目標)——顯示目標目錄結構的的一個功能。
- Proxy(代理)——攔截HTTP/S的代理服務器,做爲一個在瀏覽器和目標應用程序之間的中間人,容許你攔截,查看,修改在兩個方向上的原始數據流。
- Intruder(入侵)——一個定製的高度可配置的工具,對web應用程序進行自動化攻擊,如:枚舉標識符,收集有用的數據,以及使用fuzzing 技術探測常規漏洞。
- Repeater(中繼器)——一個靠手動操做來觸發單獨的HTTP 請求,並分析應用程序響應的工具。
- Sequencer(會話)——用來分析那些不可預知的應用程序會話令牌和重要數據項的隨機性的工具。
- Decoder(解碼器)——進行手動執行或對應用程序數據者智能解碼編碼的工具。
- Comparer(對比)——一般是經過一些相關的請求和響應獲得兩項數據的一個可視化的「差別」。
- Extender(擴展)——可讓你加載Burp Suite的擴展,使用你本身的或第三方代碼來擴展Burp Suit的功能。
- Options(設置)——包括Project options和User options,是對Burp Suite的一些設置。
瀏覽器代理設置(IE瀏覽器)
打開瀏覽器,在右上角工具中選擇Internet選項,或者在菜單欄選擇工具->Internet選項
1.選擇「鏈接選項卡」
2.選擇「局域網設置」
3.在「爲LAN使用代理服務器」前打勾
4.地址輸入127.0.0.1
端口輸入8080
(注:在BurpSuite中默認爲8080端口,其餘端口請修改BurpSuite配置)
算法
插件安裝
BurpSuite給出了兩種插件安裝方法,一種是在線安裝:經過BApp Store安裝插件;第二種是本地安裝:添加本地環境中的插件。瀏覽器
在BApp Store中安裝插件
打開Extender選項卡,在BApp Store中能夠下載安裝不少插件。
安全
安裝自定義插件
在Extender選項卡中的Extensions中點擊add按鈕,會彈出根據插件類型選擇插件的目錄。
服務器
Scan
- 在Dashboard中能夠建立掃描任務,進行掃描。在1.6版本中有一個專門的Scanner模塊來進行掃描的使用。
- Event log中顯示事件列表。
- Issue activity顯示任務中發現的漏洞。
Proxy模塊
代理模塊做爲BurpSuite的核心功能,攔截HTTP/S的代理服務器,做爲一個在瀏覽器和目標應用程序之間的中間人,容許攔截,查看,修改在兩個方向上的原始數據流。websocket
Module1:intercept
用於顯示修改HTTP請求及響應內容,並能夠將攔截的HTTP請求快速發送至其餘模塊處理。
cookie
- Forward:用於發送數據。當把所須要的HTTP請求編輯編輯完成後,手動發送數據。
- Drop:將該請求包丟棄。
- Intercept is off/on:攔截開關。當處於off狀態下時,BurpSuite會自動轉發所攔截的全部請求;當處於on狀態下時,BurpSuite會將全部攔截全部符合規則的請求並將它顯示出來等待編輯或其餘操做。
- Action:功能菜單,與右鍵菜單內容相同,在這能夠將請求包發送到其餘的模塊或者對數據包進行其餘的操做,菜單中的詳細功能咱們會在後續課程中陸續說明。
Module2:http history
這裏將記錄通過代理服務器訪問的全部請求,即便當Intercept is off時也會記錄。
記錄包括:#(請求索引號)、Host(主機)、Method(請求方式)、URL(請求地址)、Params(參數)、Edited(編輯)、Status(狀態)、Length(響應字節長度)、MIME type(響應的MLME類型)、Extension(地址文件擴展名)、Title(頁面標題)、Comment(註釋)、SSL、IP(目標IP地址)、Cookies、Time(發出請求時間)、Listener port(監聽端口)。
網絡
下方窗口能夠顯示請求的詳細內容(Request)及其響應內容(Response),經過右鍵菜單也能夠將請求發送至其餘模塊。雙擊某個請求便可打開詳情,經過Previous/next能夠快速切換請求,而且Action也能夠將請求發送至其餘模塊。
Module3:WebSockets history
這個版塊用於記錄WebSockets的數據包,是HTML5中最強大的通訊功能,定義了一個全雙工的通訊信道,只需Web上的一個 Socket便可進行通訊,能減小沒必要要的網絡流量並下降網絡延遲。
Module4:Options
該版塊主要用於設置代理監聽、請求和響應,攔截反應,匹配和替換,ssl等。
- Proxy Listeners:代理偵聽器是偵遵從您的瀏覽器傳入的鏈接本地HTTP代理服務器。它容許您監視和攔截全部的請求和響應,而且位於BurpProxy的工做流的心臟。默認狀況下,Burp默認監聽12.0.0.1地址,端口8080。要使用這個監聽器,你須要配置你的瀏覽器使用127.0.0.1:8080做爲代理服務器。此默認監聽器是必需的測試幾乎全部的基於瀏覽器的全部Web應用程序。
- Intercept Client Requests:配置攔截規則,設置攔截的匹配規則。 當Intercept request based on the following rules爲選中狀態時,burpsuite會配置列表中的規則進行攔截或轉發。注意:若是該複選框未選中,那麼即便Intercept is on也沒法截取數據包。
- 規則能夠經過Enabled列中的複選框選擇開啓或關閉。
- 規則能夠是域名, IP地址,協議, HTTP方法, URL,文件擴展名,參數,cookie ,頭/主體內容,狀態代碼,MIME類型, HTML頁面標題等。
- 規則按順序處理,而且使用布爾運算符AND和OR組合。
- Intercept Server Responses:功能相似於配置攔截規則,設置攔截的匹配規則,不過這個選項是基於服務端攔截,當選小的Intercept request based on the following rules爲選中狀態時,burpsuite會匹配響應包。
- Intercept WebSockets Messages:用於設置攔截WebSockets數據。
- Response Modification:用於執行響應的自動修改。可使用這些選項來自動修改HTML應用程序響應中匹配的內容。
- Match and replace:用於自動替換請求和響應經過代理的部分。對於每個HTTP消息,已啓用的匹配和替換規則依次執行,選擇適用的規則進行匹配執行。規則能夠分別被定義爲請求和響應,對於消息頭和身體,而且還特別爲只請求的第一行。每一個規則能夠指定一個文字字符串或正則表達式來匹配,和一個字符串來替換它。對於郵件頭,若是匹配條件,整個頭和替換字符串匹配留空,而後頭被刪除。若是指定一個空的匹配表達式,而後替換字符串將被添加爲一個新的頭。有可協助常見任務的各類缺省規則,這些都是默認爲禁用。 匹配多行區域。您可使用標準的正則表達式語法來匹配郵件正文的多行區域。
- SSL Pass Through:指定WEB服務器在通過burpsuite鏈接時使用SSL鏈接。
- Miscellaneous:其餘選項,這些選項控制着Burp代理的行爲的一些具體細節。
Intruder模塊(暴力破解)
Burp intruder是一個強大的工具,用於自動對Web應用程序自定義的攻擊。它能夠用來自動執行您的測試過程當中可能出現的全部類型的任務。例如目錄爆破,注入,密碼爆破等。
Module1:Target
用於配置目標服務器進行攻擊的詳細信息。
- Host:這是目標服務器的IP地址或主機名。
- Port:這是目標服務的端口號。
- Use HTTPS:這指定的SSL是否應該被使用
在BurpSuite任何請求處,右鍵菜單選擇「Send to intruder」選項,將自動發送到此模塊下並自動填充以上內容。
Module2:Positions
設置Payloads的插入點以及攻擊類型(攻擊模式)。
- attack type:攻擊模式設置。
- sniper:對變量依次進行破解。多個標記依次進行。
- battering ram:對變量同時進行破解。多個標記同時進行。
- pitchfork:每個變量標記對應一個字典,取每一個字典的對應項。
- cluster bomb:每一個變量對應一個字典,而且進行交集破解,嘗試各類組合。適用於用戶名+密碼的破解。
- add:插入一個新的標記。
- clear:清除全部的標記。
- auto:自動設置標記,一個請求發到該模塊後burpsuite會自動標記cookie URL等參數。
- refresh:若是必要的話,這能夠要求模板編輯器的語法高亮。
Module3:Payloads
設置payload,配置字典。
- Payload Sets:Payload數量類型設置。
- Payload Set:指定須要配置的變量。
Payload type:Payload類型。
Simple list:簡單字典
Runtime file:運行文件
Custom iterator:自定義迭代器
Character substitution:字符替換
Recursive grep:遞歸查找
lllegal unicode:非法字符
Character blocks:字符塊
Numbers:數字組合
Dates:日期組合
Brute forcer:暴力破解
Null payloads:空payload
Username generator:用戶名生成
copy other payload:複製其餘payload
- Payload Opetions[Payload type]:該選項會根據上個選項中Payload type的設置而改變。
- Payload Processing:對生成的Payload進行編碼、加密、截取等操做。
- Payload Encoding:能夠配置哪些有效載荷中的字符應該是URL編碼的HTTP請求中的安全傳輸。任何已配置的URL編碼最後應用,任何有效載荷處理規則執行以後。這是推薦使用此設置進行最終URL編碼,而不是一個有效載荷處理規則,由於能夠用來有效載荷的grep選項來檢查響應爲呼應有效載荷的最終URL編碼應用以前。
Module4:Opetions
此選項卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。能夠發動攻擊以前,在主要Intruder的UI上編輯這些選項,大部分設置也能夠在攻擊時對已在運行的窗口進行修改。
Repeater模塊(上傳繞過)
Repeater是用於手動操做和發送個別HTTP請求,並分析應用程序的響應一個簡單的工具。能夠發送一個內部請求從Burp任何地方到Repeater,修改請求而且發送。
- 能夠從Proxy history、site map、Scanner等模塊中右鍵菜單send to repeater發送到repeater,對頁面數據進行修改發送。
- 點擊go,發送請求,右邊響應請求。
- 能夠經過「<「和」>「來返回上一次和下一個操做。
- 單擊」x「能夠刪除當前測試請求頁面。
- 底部的功能用於搜索條件,能夠用正則表達式,底部右邊顯示匹配結果數。
該模塊的設置在菜單欄Repeater中,主要選項以下:
- Update Content-length:更新頭部長度。
- Unpack gzip/deflate:該選項控制Burp是否自動解壓縮在收到的答覆的gzip和deflate壓縮內容。
- Follow redirections:在遇到重定向時Burp該怎麼處理
- Never:不會跟隨任何重定向。
- On-site only:中繼器將只跟隨重定向到使用相同的主機,端口和協議的URL。
- In-scope Only:中繼器將只跟隨重定向到的目標範圍以內的URL。
- Always:中繼器將跟隨重定向到任何URL任何責任。
- Process cookies in redirections:當被重定向後是否提交cookie。
- View:設置響應/請求版塊的佈局方式。
- Action:形同於右鍵菜單。
Decoder模塊(編碼模塊)
將原始數據轉換成各類編碼和哈希表的簡單工具。它可以智能地識別多種編碼格式採用啓發式技術。
- Decode as...:解碼
- Encode as...:編碼
- 支持的編碼解碼類型:1.Url 2.HTML 3.Base64 4.ASCII碼 5.Hex(十六進制) 6.octal(八進制) 7.binary(二進制) 8.GZIP
- hash:支持的hash算法:1.SHA-384 2.SHA-224 3.SHA-256 4.MD2 5.SHA 6.SHA-512 7.MD5
- Smart decoding:智能解碼,burpsuite會遞歸查詢本身所支持的格式嘗試解碼。經過有請求的任意模塊的右鍵菜單send to Decoder或輸入數據選擇相應的數據格式便可進行解碼編碼操做,或直接點擊Smart decoding進行智能解碼。
過濾器的使用
在burpsuite中在多個模塊均可以看到Fitter過濾器的身影,它們使用方法相同,在此統一介紹。
過濾器分爲如下模塊:
- Fitter by Request type:按照請求類型篩選
- Show only in-scope items:只顯示範圍內的
- Show only requested items:只顯示請求的
- Show only parameterized requests:只顯示帶有參數的請求
- Hide not-found items:隱藏未找到的
- Fitter by search term:經過關鍵字篩選
- regex:經過正則表達式匹配
- case sensitive:是否區分大小寫
- negative search:消極搜索,選擇後將篩選出不包含該關鍵字的請求
- Fitter by MIME type:經過文件類型篩選
- HTML:是否顯示HTML文件請求
- Script:是否顯示腳本文件請求
- XML:是否顯示標記文件請求
- CSS:是否顯示層疊樣式文件請求
- Other text:是否顯示其餘類型文本請求
- images:是否顯示圖片請求
- Flash:是否顯示Flash動畫請求
- Other binary:是否顯示其餘二進制文件。
- Fitter by file extension:經過文件後綴篩選
- Show only:只顯示自定義的後綴請求
- Hide :隱藏自定義的後綴請求
- Fitter by status code:根據HTTP響應狀態碼篩選
- 2xx:顯示成功的請求
- 3xx:顯示重定向的請求
- 4xx:顯示請求錯誤的請求
- 5xx:顯示服務器錯誤的請求
- Fitter by annotation:顯示僅顯示用戶提供的註釋或亮點的項目
- Show only commented items:只顯示註釋項目
- Show only highlighted items:只顯示突出顯示的項目
-Folders:是否顯示文件夾
- hide empty folders:隱藏空文件夾
參考資料