安全測試===burpsuit指南

網址:

https://www.gitbook.com/book/t0data/burpsuite/detailscss

引子

 

 

剛接觸web安全的時候,很是想找到一款集成型的滲透測試工具,找來找去,最終選擇了Burp Suite,除了它功能強大以外,還有就是好用,易於上手。因而就從網上下載了一個破解版的來用,記得那時候好像是1.2版本,功能也沒有如今這麼強大。在使用的過程當中,慢慢發現,網上系統全量的介紹BurpSuite的書籍太少了,大可能是零星、片斷的講解,不成體系。後來慢慢地出現了很多介紹BurpSuite的視頻,現狀也變得愈來愈好。但往往遇到不知道的問題時,仍是不得不搜尋BurpSuite的官方文檔和英文網頁來解決問題,也正是這些問題,慢慢讓我以爲有必要整理一套全面的BurpSuite中文教程,算是爲web安全界作盡本身的一份微薄之力,也纔有了大家如今看到的這一系列文章。html

我給這些文章取了IT行業圖書比較通用的名稱: 《BurpSuite實戰指南》,您能夠稱我爲中文編寫者,文章中的內容主要源於BurpSuite官方文檔和多位國外安全大牛的經驗總結,我只是在他們的基礎上,結合個人經驗、理解和實踐,編寫成如今的中文教程。本書我也沒有出版成紙質圖書的計劃,本着IT人互聯分享的精神,放在github,作免費的電子書。於業界,算一份小小的貢獻;於本身,算一次總結和鍛鍊。java

以上,是爲小記。git

感謝您閱讀此書,閱讀過程當中,若是發現錯誤的地方,歡迎發送郵件到 t0data@hotmail.com,感謝您的批評指正。github

本書包含如下章節內容:web

第一部分 Burp Suite 基礎

  1. Burp Suite 安裝和環境配置
  2. Burp Suite代理和瀏覽器設置
  3. 如何使用Burp Suite 代理
  4. SSL和Proxy高級選項
  5. 如何使用Burp Target
  6. 如何使用Burp Spider
  7. 如何使用Burp Scanner
  8. 如何使用Burp Intruder
  9. 如何使用Burp Repeater
  10. 如何使用Burp Sequencer
  11. 如何使用Burp Decoder
  12. 如何使用Burp Comparer

第二部分 Burp Suite 高級

  1. 數據查找和拓展功能的使用
  2. BurpSuite全局參數設置和使用
  3. Burp Suite應用商店插件的使用
  4. 如何編寫本身的Burp Suite插件

第三部分 Burp Suite 綜合使用

  1. 使用Burp Suite測試Web Services服務
  2. 使用Burp, Sqlmap進行自動化SQL注入滲透測試
  3. 使用Burp、PhantomJS進行XSS檢測
  4. 使用Burp 、Radamsa進行瀏覽器fuzzing
  5. 使用Burp 、Android Killer進行安卓app滲透測試

 

 

第一章 Burp Suite 安裝和環境配置

Burp Suite是一個集成化的滲透測試工具,它集合了多種滲透測試組件,使咱們自動化地或手工地能更好的完成對web應用的滲透測試和攻擊。在滲透測試中,咱們使用Burp Suite將使得測試工做變得更加容易和方便,即便在不須要嫺熟的技巧的狀況下,只有咱們熟悉Burp Suite的使用,也使得滲透測試工做變得輕鬆和高效。正則表達式

Burp Suite是由Java語言編寫而成,而Java自身的跨平臺性,使得軟件的學習和使用更加方便。Burp Suite不像其餘的自動化測試工具,它須要你手工的去配置一些參數,觸發一些自動化流程,而後它纔會開始工做。chrome

Burp Suite可執行程序是java文件類型的jar文件,免費版的能夠從免費版下載地址進行下載。免費版的Burp Suite會有許多限制,不少的高級工具沒法使用,若是您想使用更多的高級功能,須要付費購買專業版。專業版與免費版的主要區別有windows

  1. Burp Scanner
  2. 工做空間的保存和恢復
  3. 拓展工具,如Target Analyzer, Content Discovery和 Task Scheduler

本章主要講述Burp Suite的基本配置,包含以下內容:瀏覽器

  • 如何從命令行啓動Burp Suite</br>
  • 如何設置JVM內存 大小</br>
  • IPv6問題調試

如何從命令行啓動Burp Suite

Burp Suite是一個無需安裝軟件,下載完成後,直接從命令行啓用便可。但Burp Suite是用Java語言開發的,運行時依賴於JRE,須要提早Java可運行環境。

若是沒有配置Java環境或者不知道如何配置的童鞋請參考win7電腦上的Java環境配置 配置完Java環境以後,首先驗證Java配置是否正確,若是輸入java -version 出現下圖的結果,證實配置正確且已完成。

java環境驗證

這時,你只要在cmd裏執行java -jar /your_burpsuite_path/burpSuite.jar便可啓動Burp Suite,或者,你將Burp Suite的jar放入class_path目錄下,直接執行java -jar burpSuite.jar也能夠啓動。

==注意:your_burpsuite_path爲你Burp Suite所在路徑,burpSuite.jar文件名必須跟你下載的jar文件名稱一致==

如何設置JVM內存 大小

若是Java可運行環境配置正確的話,當你雙擊burpSuite.jar便可啓動軟件,這時,Burp Suite本身會自動分配最大的可用內存,具體實際分配了多少內存,默認通常爲64M。當咱們在滲透測試過程,若是有成千上萬個請求經過Burp Suite,這時就可能會致使Burp Suite因內存不足而崩潰,從而會丟失滲透測試過程當中的相關數據,這是咱們不但願看到的。所以,當咱們啓動Burp Suite時,一般會指定它使用的內存大小。 通常來講,咱們一般會分配2G的內存供Burp Suite使用,若是你的電腦內存足夠,能夠分配4G;若是你的電腦內存足夠小,你也能夠分配128M。當你給Burp Suite分配足夠多的內存時,它能作的工做也會更多。指定Burp Suite佔用內存大小的具體配置方法是在啓動腳本里添加以下命令行參數: 假設啓動腳本的名稱爲burp_suite_start.bat,則該bat腳本的內容爲

java -jar -Xmx2048M  /your_burpsuite_path/burpsuite.jar

其中參數-Xmx指定JVM可用的最大內存,單位能夠是M,也能夠是G,若是是G爲單位的話,則腳本內容爲:

java -jar -Xmx2G  /your_burpsuite_path/burpsuite.jar

更多關於JVM性能調優的知識請閱讀 Oracle JVM Tuning

IPv6問題調試

Burp Suite是不支持IPv6地址進行數據通訊的,這時在cmd控制檯裏就會拋出以下異常

java.net.SocketException: Permission denied

同時,瀏覽器訪問時,也會出現異常

Burp proxy error: Permission denied: connect

當出現如上問題時,咱們須要修改啓動腳本,添加對IPv4的指定後,重啓Burp Suite便可。

java -jar -Xmx2048M  -Djava.net.preferIPv4Stack=true  /your_burpsuite_path/burpsuite.jar

經過 -Djava.net.preferIPv4Stack=true參數的設置,告訴Java運行環境,使用IPv4協議棧進行數據通訊,IPv6協議將會被禁止使用。 這個錯誤最多見於64位的windows操做系統上,使用了32位的JDK

 

第二章 Burp Suite代理和瀏覽器設置

 

Burp Suite代理工具是以攔截代理的方式,攔截全部經過代理的網絡流量,如客戶端的請求數據、服務器端的返回信息等。Burp Suite主要攔截http和https協議的流量,經過攔截,Burp Suite以中間人的方式,能夠對客戶端請求數據、服務端返回作各類處理,以達到安全評估測試的目的。

在平常工做中,咱們最經常使用的web客戶端就是的web瀏覽器,咱們能夠經過代理的設置,作到對web瀏覽器的流量攔截,並對通過Burp Suite代理的流量數據進行處理。

下面咱們就分別看看IE、Firefox、Google Chrome下是如何配置Burp Suite代理的。

IE設置

當Burp Suite 啓動以後,默認分配的代理地址和端口是127.0.0.1 :8080,咱們能夠從Burp Suite的proxy選項卡的options上查看。如圖:

 

如今,咱們經過以下步驟的設置便可完成IE經過Burp Suite 代理的相關配置。

  1. 啓動IE瀏覽器
  2. 點擊【工具】菜單,選擇【Internet】選項
  3. 打開【鏈接】選項卡,點擊【局域網設置】,進行代理設置。
  4. 在代理服務器設置的地址輸入框中填寫127.0.0.1,端口填寫8080,點擊【肯定】,完成代理服務器的設置。
  5. 這時,IE的設置已經完成,你能夠訪問 http://burp 將會看到Burp Suite的歡迎界面。

FireFox設置

與IE的設置相似,在FireFox中,咱們也要進行一些參數設置,才能將FireFox瀏覽器的通訊流量,經過Burp Suite代理進行傳輸。詳細的步驟以下:

  1. 啓動FireFox瀏覽器,點擊【工具】菜單,點擊【選項】。
  2. 在新打開的about:preferences#advanced窗口中,依次點擊【高級】-【網絡】,咱們將會看到FireFox鏈接網絡的設置選項。
  3. 點擊【設置】,在彈出的【鏈接設置】對話框中,找到「http代理」,填寫127.0.0.1,端口填寫8080,最後點擊【確認】保存參數設置,完成FireFox的代理配置。
  4. 固然,FireFox瀏覽器中,能夠添加FireFox的擴展組件,對代理服務器進行管理。例如FireX Proxy、Proxy Swither都是很好用的組件,感興趣的讀者能夠本身下載試用一下。

Google Chrome設置

Google Chrome使用Burp Suite做爲代理服務器的配置步驟以下:

  1. 啓動Google Chrome瀏覽器,在地址欄輸入chrome://settings/,回車後即顯示Google Chrome瀏覽器的配置界面
  2. 點擊底部的【顯示高級設置】,將顯示Google Chrome瀏覽器的高級設置。
  3. 固然,你也能夠直接在搜索框中輸入「代理」,回車後將自動定位到代理服務器設置功能。
  4. 點擊【更改代理服務器設置】,windows系統下將會彈出IE瀏覽器的代理設置,此時,按照IE瀏覽器的設置步驟,完成代理服務器的配置便可。

除了上述的三種經常使用的瀏覽器外,還有Safari瀏覽器也有很多的用戶在使用,其代理配置請點擊閱讀進行查看。

 

 

第三章 如何使用Burp Suite代理

Burp Proxy 是Burp Suite以用戶驅動測試流程功能的核心,經過代理模式,可讓咱們攔截、查看、修改全部在客戶端和服務端之間傳輸的數據。

本章主要講述如下內容:

  • Burp Proxy基本使用
  • 數據攔截與控制
  • 可選項配置Options
  • 歷史記錄History

Burp Proxy基本使用

經過上一章的學習,咱們對Burp Suite代理模式和瀏覽器代理設置有了基本的瞭解。Burp Proxy的使用是一個按部就班的過程,剛開始使用時,可能並不能很快就獲取你所指望的結果,慢慢地當你熟悉了它的功能和使用方法,你就能夠用它很好地對一個產品系統作安全能力評估。 通常使用Burp Proxy時,大致涉及環節以下:

  1. 首先,確認JRE已經安裝好,Burp Suite能夠啓動並正常運行,且已經完成瀏覽器的代理服務器配置。
  2. 打開Proxy功能中的Intercept選項卡,確認攔截功能爲「Interception is on」狀態,若是顯示爲「Intercept is off」則點擊它,打開攔截功能。
  3. 打開瀏覽器,輸入你須要訪問的URL(以http://baike.baidu.com/爲例)並回車,這時你將會看到數據流量通過Burp Proxy並暫停,直到你點擊【Forward】,纔會繼續傳輸下去。若是你點擊了【Drop】,則此次經過的數據將會被丟失,再也不繼續處理。
  4. 當咱們點擊【Forward】以後,咱們將看到此次請求返回的全部數據。
  5. 當Burp Suite攔截的客戶端和服務器交互以後,咱們能夠在Burp Suite的消息分析選項卡中查看此次請求的實體內容、消息頭、請求參數等信息。消息分析選項視圖主要包括如下四項:
  6. Raw 這是視圖主要顯示web請求的raw格式,包含請求地址、http協議版本、主機頭、瀏覽器信息、Accept可接受的內容類型、字符集、編碼方式、cookie等。你能夠經過手工修改這些信息,對服務器端進行滲透測試。
  7. params 這個視圖主要顯示客戶端請求的參數信息、包括GET或者POST請求的參數、Cookie參數。滲透人員能夠經過修改這些請求參數來完成對服務器端的滲透測試。
  8. headers 這個視圖顯示的信息和Raw的信息相似,只不過在這個視圖中,展現得更直觀、友好。
  9. Hex 這個視圖顯示Raw的二進制內容,你能夠經過hex編輯器對請求的內容進行修改。

默認狀況下,Burp Proxy只攔截請求的消息,普通文件請求如css、js、圖片是不會被攔截的,你能夠修改默認的攔截選項來攔截這些靜態文件,固然,你也能夠經過修改攔截的做用域、參數或者服務器端返回的關鍵字來控制Burp Proxy的消息攔截,這些在後面的章節中咱們會進一步的學習。 全部流經Burp Proxy的消息,都會在http history記錄下來,咱們能夠經過歷史選項卡,查看傳輸的數據內容,對交互的數據進行測試和驗證。同時,對於攔截到的消息和歷史消息,均可以經過右擊彈出菜單,發送到Burp的其餘組件,如Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer、Extender,進行進一步的測試。以下圖所示:


數據攔截與控制

Burp Proxy的攔截功能主要由Intercept選項卡中的Forward、Drop、Interception is on/off、Action、Comment 以及Highlight構成,它們的功能分別是: Forward的功能是當你查看過消息或者從新編輯過消息以後,點擊此按鈕,將發送消息至服務器端。 Drop的功能是你想丟失當前攔截的消息,再也不forward到服務器端。Interception is on表示攔截功能打開,攔截全部經過Burp Proxy的請求數據;Interception is off表示攔截功能關閉,再也不攔截經過Burp Proxy的全部請求數據。 Action的功能是除了將當前請求的消息傳遞到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer組件外,還能夠作一些請求消息的修改,如改變GET或者POST請求方式、改變請求body的編碼,同時也能夠改變請求消息的攔截設置,如再也不攔截此主機的消息、再也不攔截此IP地址的消息、再也不攔截此種文件類型的消息、再也不攔截此目錄的消息,也能夠指定針對此消息攔截它的服務器端返回消息。

Comment的功能是指對攔截的消息添加備註,在一次滲透測試中,你一般會遇到一連串的請求消息,爲了便於區分,在某個關鍵的請求消息上,你能夠添加備註信息。

Highlight的功能與Comment功能有點相似,即對當前攔截的消息設置高亮,以便於其餘的請求消息相區分。

除了Intercept中能夠對經過Proxy的消息進行控制外,在可選項設置選項卡Options中也有不少的功能設置也能夠對流經的消息進行控制和處理。

可選項配置Options

當咱們打開可選項設置選項卡Options,從界面顯示來看,主要包括如下幾大板塊(涉及https的功能不包含在本章內容裏,後面會一章專門敘述):

  • 客戶端請求消息攔截
  • 服務器端返回消息攔截
  • 服務器返回消息修改
  • 正則表達式配置
  • 其餘配置項
客戶端請求消息攔截

客戶端請求消息攔截是指攔截客戶端發送到服務器端消息的相關配置選項,其界面以下:

主要包含攔截規則配置、錯誤消息自動修復、自動更新Content-Length消息頭三個部分。

  1. 若是intercept request based on the follow rules的checkbox被選中,則攔截全部符合勾選按鈕下方列表中的請求規則的消息都將被攔截,攔截時,對規則的過濾是自上而下進行的。固然,咱們能夠根據本身的需求,經過【Up】和【Down】按鈕,調節規則所在位置和排序。同時,咱們能夠點擊【Add】添加一條規則,也能夠選中一條規則,經過點擊【Edit】進行編輯、點擊【Remove】進行刪除。當咱們點擊【Add】按鈕時,會彈出規則添加的輸入對話框,以下圖:
  2. 攔截規則添加時,共包含4個輸入項。Boolean opertor表示當前的規則與其餘規則是與的方式(And)仍是或的方式(Or)共存;Match type表示匹配類型,此處匹配類型能夠基於域名、IP地址、協議、請求方法、URL、文件類型、參數, cookies, 頭部或者內容, 狀態碼, MIME類型, HTML頁面的title等。Match relationship表示此條規則是匹配仍是不匹配Match condition輸入的關鍵字。當咱們輸入這些信息,點擊【OK】按鈕,則規則即被保存。
  3. 若是Automatically fix missing的checkbox被選中,則表示在一次消息傳輸中,Burp Suite會自動修復丟失或多餘的新行。好比說,一條被修改過的請求消息,若是丟失了頭部結束的空行,Burp Suite會自動添加上;若是一次請求的消息體中,URl編碼參數中包含任何新的換行,Burp Suite將會移除。此項功能在手工修改請求消息時,爲了防止錯誤,有很好的保護效果。
  4. 若是Automatically update Content-Length的checkbox被選中,則當請求的消息被修改後,Content-Length消息頭部也會自動被修改,替換爲與之相對應的值。
服務器端返回消息攔截

服務器端返回消息攔截顧名思義是指攔截服務器端返回的消息的相關配置項,其界面以下:

它的功能主要包含intercept response based on the follow rules和Automatically update Content-Length header when the response edited兩個選項,其功能分別與客戶端請求消息攔截中的intercept request based on the follow rules、Automatically update Content-Length header when the request edited相對應,就不在贅述,請參上一節的內容。

服務器返回消息修改

服務器返回消息修改是指自動修改服務器端返回消息的相關設置項。其界面以下:

自上而下,每個選擇項分別對應的功能是

  • 顯示form表單中隱藏字段
  • 高亮顯示form表單中隱藏字段
  • 使form表單中的disable字段生效,變成可輸入域
  • 移除輸入域長度限制
  • 移動JavaScript驗證
  • 移動全部的JavaScript
  • 移除標籤
  • 轉換https超連接爲http連接
  • 移除全部cookie中的安全標誌

經過服務器返回消息修改可選擇項的設置,能夠方便滲透測試人員在安全評估過程當中突破原有的數據限制,更好、更快地檢測服務器端的安全性。

正則表達式配置

此項配置主要用來自動替換請求消息和服務器端返回消息中的某些值和文本,它與前文的規則的不一樣之處還在於支持正則表達式語言。

當點擊【Add】按鈕時,在彈出的匹配或替換規則輸入對話框中咱們能夠看到,它能夠對請求和返回消息的消息頭,消息體、請求參數名、請求參數值、請求的第一行進行匹配和替換。

例如,當咱們要替換全部返回消息中的郵箱地址爲t0data@burpsuite.com時,能夠參考下圖的設置填寫輸入項並保存驗證。

其餘配置項

其餘配置項主要是雜項設置。其界面以下:

自上而下依次的功能是

  • 指定使用HTTP/1.0協議與服務器進行通訊 這項設置用於強制客戶端採用HTTP/1.0協議與服務器進行通訊,通常客戶端使用的HTTP協議版本依賴於客戶端瀏覽器,但某些服務器或者應用,必須使用HTTP/1.0協議,此時可勾選此項
  • 指定使用HTTP/1.0協議反饋消息給客戶端 目前全部的瀏覽器均支持HTTP/1.0協議和HTTP/1.1協議,強制指定HTTP/1.0協議主要用於顯示瀏覽器的某些方面的特徵,好比,阻止HTTP管道攻擊。
  • 設置返回消息頭中的「Connection:close」 可用於某些狀況下的阻止HTTP管道攻擊。
  • 請求消息頭中脫掉Proxy-* 瀏覽器請求消息中,一般會攜帶代理服務器的相關信息,此選項主要用於清除消息頭中的代理服務器信息。
  • 解壓請求消息中的壓縮文件 某些應用在與服務器端進行交互時,會壓縮消息體,勾選此選項,則Burp Suite 會自動解壓消息體
  • 解壓返回消息中的壓縮文件 大多數瀏覽器支持壓縮的消息體,勾選此選項,則Burp Suite 會自動解壓被服務器端壓縮的消息體
  • 禁用http://burp
  • 容許經過DNS和主機名訪問web接口 即容許經過域名或主機名訪問Burp Suite
  • 不在瀏覽器中顯示Burp Suite錯誤 在咱們使用Burp Suite時,若是發生了Burp Suite自身的錯誤,會在瀏覽器中顯示,若是勾選了此項,則不會在瀏覽器中顯示此類錯誤。
  • 禁用日誌到歷史和網站地圖中 此選項的做用是阻止記錄日誌到歷史和網站地圖,在某些狀況下可能有用,好比說,經過上游服務器進行認證或者作正則表達式替換時,爲了下降內存的消耗,減小日誌的儲存,你能夠勾選此項。
  • 攔截功能開始設置
    這個選項主要用來配置intercept功能的生效方式,分爲老是生效、 老是失效 、從上一次的Burp Suite中恢復設置3種方式。

歷史記錄History


Burp Proxy的歷史記錄由HTTP歷史和WebSockets歷史兩個部分組成。

HTTP歷史界面由篩選過濾器、歷史記錄列表、消息詳情3個部分組成。

當咱們在某一條歷史記錄上單擊,會在下方的消息詳解塊顯示此條消息的文本詳細信息。當咱們在某條消息上雙擊,則會彈出此條消息的詳細對話框。

咱們能夠點擊對話框右上方的【Previous】、【Next】按鈕,瀏覽上一條或下一條消息的內容,也能夠修改Raw的請求參數,而後執行多種【Action】操做。

歷史消息列表中主要包含請求序列號、請求協議和主機名、請求的方式、URL路徑、請求參數、Cookie、是否用戶編輯過消息、服務器端返回的HTTP狀態碼等信息。經過這些信息,咱們能夠對一次客戶端與服務器端交互的HTTP消息詳情作出準確的分析,同時,在下方的詳情視圖中,也提供基於正則表達式方式的匹配查找功能,更好的方便滲透測試人員查找消息體中的相關信息。

當咱們在作產品系統的安全評估過程當中,會在HTTP歷史中保存了大量的日誌記錄,爲了更友好的消息管理,Burp提供了篩選過濾器功能。當咱們點擊HTTP歷史標籤下發的Filter時,將彈出篩選過濾器界面。

按照過濾條件的不一樣,篩選過濾器劃分出7個子板塊,分別是

  • 按照請求類型過濾 你能夠選擇僅顯示當前做用域的、僅顯示有服務器端響應的和僅顯示帶有請求參數的消息。當你勾選「僅顯示當前做用域」時,此做用域須要在Burp Target的Scope選項中進行配置,詳細請閱讀Burp Target相關章節。
  • 按照MIME類型過濾 你能夠控制是否顯示服務器端返回的不一樣的文件類型的消息,好比只顯示HTML、css或者圖片。此過濾器目前支持HTML、Script、XML、CSS、其餘文本、圖片、Flash、二進制文件 8種形式。
  • 按照服務器返回的HTTP狀態碼過濾 Burp根據服務器的狀態碼,按照2XX,3XX,4XX,5XX分別進行過濾。好比,若是你只想顯示返回狀態碼爲200的請求成功消息,則勾選2XX。
  • 按照查找條件過濾 此過濾器是針對服務器端返回的消息內容,與輸入的關鍵字進行匹配,具體的匹配方式,你能夠選擇 1.正則表達式 2.大小寫敏感 3.否認查找 3種方式的任何組合,前面兩種匹配方式容易理解,第3種匹配方式是指與關鍵字匹配上的將再也不顯示。
  • 按照文件類型過濾 經過文件類型在過濾消息列表,這裏有兩個選擇可供操做。一是僅僅顯示哪些,另外一個是不顯示哪些。若是是僅僅顯示哪些,在show only的輸入框中填寫顯示的文件類型,一樣,若是不顯示哪些文件類型,只要在hide的輸入框中填寫不須要顯示的文件類型便可。
  • 按照註解過濾 此過濾器的功能是指,根據每個消息攔截時候的備註或者是否高亮來做爲篩選條件控制哪些消息在歷史列表中顯示。
  • 按照監聽端口過濾 此過濾器一般使用於當咱們在Proxy Listeners中多個監聽端口時,僅僅顯示某個監聽端口通訊的消息,通常狀況下,咱們不多用到。

如今,咱們再看看WebSockets歷史選項的功能,從界面上咱們能夠看出,WebSockets歷史所提供的功能和選項是HTTP歷史的一個子集,只是由於採用的通訊方式的不一樣,而被獨立出來成爲一個專門的視圖。其功能的使用方式與HTTP歷史雷同,此處就不在贅述。

經過本章的學習,你對Burp Suite的代理模式有了更深刻的理解,知道了做爲中間人的Burp Proxy在消息攔截過程當中,能夠對請求消息、應答消息作多方面的修改,並能夠把消息傳遞給Burp的其餘組件作進一步的測試。同時,Burp Proxy的歷史日誌功能和多種篩選過濾器讓咱們在使用中,能快速地查找須要的數據和關鍵信息,這些,都極大地幫助你提升了工做效率。

 

第四章 SSL和Proxy高級選項

在前一章,咱們已經學習了HTTP消息如何經過Burp Proxy進行攔截和處理,本章咱們將繼續學習HTTPS協議消息的攔截和處理。

HTTPS協議是爲了數據傳輸安全的須要,在HTTP原有的基礎上,加入了安全套接字層SSL協議,經過CA證書來驗證服務器的身份,並對通訊消息進行加密。基於HTTPS協議這些特性,咱們在使用Burp Proxy代理時,須要增長更多的設置,才能攔截HTTPS的消息。

本章包含的主要內容有

  • CA證書的安裝
  • CA證書的卸載
  • Proxy監聽設置
  • SSL直連和隱形代理設置

咱們都知道,在HTTPS通訊過程當中,一個很重要的介質是CA證書,下面就咱們一塊兒來看看Burp Suite中CA證書的安裝。

CA證書的安裝

通常來講,Burp Proxy代理過程當中的CA主要分爲以下幾個步驟(以win7下IE9爲例):

  1. 首先,根據前三章內容的學習,你已配置好Burp Proxy監聽端口和IE的代理服務器設置。其次,你的IE瀏覽器中沒有安裝過Burp Suite的CA證書,若是已經安裝,請先卸載證書。詳細的卸載方法請參考CA證書的卸載章節。
  2. 以管理員身份,啓動IE瀏覽器,在地址欄輸入http://burp並回車,進入證書下載頁面
  3. 點擊上圖所示的證書下載,另存爲到本地目錄。
  4. 點擊瀏覽器上的【工具】菜單,打開【Internet選項】。
  5. 在彈出的證書對話框中,點擊【內容】-【證書】。
  6. 在彈出的證書對話框中,選中【受信任的根證書頒發機構】,點擊【導入】。
  7. 點擊【下一步】,選擇步驟3保存的證書文件,進行下一步操做。
  8. 指定證書的存儲位置,如圖
  9. 點擊【下一步】,直至完成。這時,會提示安全警告,點擊【是】,提示導入完成。
  10. 關閉IE,重啓瀏覽器,CA證書即配置完成。

CA證書的卸載


CA證書的卸載的一般有兩種方式,第一種方式在上一章節CA證書安裝中的第6步,找到須要卸載的證書,點擊【刪除】便可。咱們這裏主要描述第二種刪除方式,主要是爲了解決在第一種方式的基礎上刪除按鈕失效或者證書列表裏看不到的證書也一塊兒刪除的方法。

  1. 首先,咱們打開cmd,輸入mmc,或者你在運行輸入框裏直接輸入mmc回車,會彈出管理控制檯。
  2. 點擊【文件】菜單,打開【添加/刪除管理單元】
  3. 找到證書,以下圖1,點擊【添加】按鈕,以下圖2
  4. 在彈出的對話框中默認選中【我當前的用戶】,點擊【完成】,一直到結束,這是會在控制檯跟節點下多了一個證書的節點。
  5. 打開CA證書所在的位置,選擇刪除便可。
  6.  
  7. 這時,你再返回到IE瀏覽器的證書列表裏,則不會再看到被刪除的證書了。

除了IE以外,其餘的瀏覽器如FireFox、Chrome、Sarifa等都證書的安裝和卸載基本相似,操做時能夠以IE的CA證書安裝做爲參考。

Proxy監聽設置


當咱們啓動Burp Suite時,默認會監聽本地迴路地址的8080端口,除此以外,咱們也能夠在默認監聽的基礎上,根據咱們本身的需求,對監聽端口和地址等參數進行自由設置。特別是當咱們測試非瀏覽器應用時,沒法使用瀏覽器代理的方式去攔截客戶端與服務器端通訊的數據流量,這種狀況下,咱們會使用本身的Proxy監聽設置,而不會使用默認設置。

  • Proxy監聽設置

當咱們在實際使用中,可能須要同時測試不一樣的應用程序時,咱們能夠經過設置不一樣的代理端口,來區分不一樣的應用程序,Proxy監聽即提供這樣的功能設置。點擊圖中的【Add】按鈕,會彈出Proxy監聽設置對話框,裏面有更豐富的設置,知足咱們不一樣的測試需求。

Proxy監聽設置主要包含3塊功能:

  1. 端口和IP綁定設置Binding 綁定的端口port是指Burp Proxy代理服務監聽的端口,綁定IP地址分僅本地迴路、全部接口、指定地址三種模式,在滲透測試中,不管你選擇哪一種模式,你須要明白一點,當你選擇的非本地迴路IP地址時,同局域網內的其餘電腦也能夠訪問你的監聽地址。
  2. 請求處理Request Handling 請求處理主要是用來控制接受到Burp Proxy監聽端口的請求後,若是對請求進行處理的。
  3. 其具體配置可分爲:端口的轉發、主機名/域名的轉發、強制使用SSL和隱形代理4個部分。當咱們配置了端口的轉發時,全部的請求都會被轉發到這個端口上;若是咱們配置了主機或域名的轉發,則全部的請求會轉發到指定的主機或域名上。同時,咱們能夠指定,經過Burp Proxy的消息是否強制使用SSL,若是設置了此項,則請求如果http協議,經Burp proxy代理後將轉換爲https協議。隱形代理主要是用於測試富客戶端應用或者是非瀏覽器代理方式的應用,當咱們設置了它,訪問這些應用時,將經過非代理的方式,直接鏈接Burp Proxy的監聽端口。
  4. SSL 證書 這些設置控制呈現給SSL客戶端的服務器SSL證書。能夠解決使用攔截代理時出現的一些SSL問題: 1.您能夠消除您的瀏覽器的SSL警報,並須要創建SSL例外。其中,網頁加載來自其餘域的SSL保護的項目,能夠確保這些正確的加載到瀏覽器,而不須要爲每一個域手動接受代理的SSL證書。 2.能夠與該拒絕無效的SSL證書鏈接到服務器胖客戶機應用程序的工做。 它有下列選項可供設置:
  5. 使用自簽名證書(Use a self-signed certificate ) —— 一個簡單的自簽名SSL證書呈現給您的瀏覽器,它老是會致使SSL警告。
  6. 生成每一個主機的CA簽名證書(Generate CA-signed per-host certificates)—— 這是默認選項。在安裝時,Burp創造了一個獨特的自簽名的證書頒發機構(CA)證書,並將此計算機上使用。當你的瀏覽器發出的SSL鏈接指定主機,Burp生成該主機的SSL證書,由CA證書籤名。您能夠安裝Burp的CA證書做爲瀏覽器中的受信任的根,從而使每一個主機證書沒有任何警報接受。
  7. 生成與特定的主機名CA簽發的證書(Generate a CA-signed certificate with a specific hostname)—— -是相似於前面的選項;不一樣的是,Burp會生成一個主機證書與每個SSL鏈接使用,使用指定的主機名。
  8. 使用自定義證書(Use a custom certificate)—— 此選項能夠加載一個特定的證書(在PKCS#12格式)呈現給瀏覽器。若是應用程序使用這須要一個特定的服務器證書(例如,與給定的序列號或證書鏈)的客戶端應該使用這個選項。

SSL直連和隱形代理

SSL直連的設置主要用於指定的目的服務器直接經過SSL鏈接,而經過這些鏈接的請求或響應任何細節將在Burp代理攔截視圖或歷史日誌中可見。經過SSL鏈接傳遞能夠並非簡單地消除在客戶機上SSL錯誤的狀況下有用。好比說,在執行SSL證書的移動應用。若是應用程序訪問多個域,或使用HTTP和HTTPS鏈接的混合,而後經過SSL鏈接到特定的主機問題仍然使您可以以正常的方式使用Burp的其餘方式進行通訊。若是啓用自動添加客戶端SSL協商失敗的選項,當客戶端失敗的SSL協議檢測(例如,因爲不認可Burp的CA證書),並會自動將相關的服務器添加到SSL直統統過列表中去。其設置界面以下圖所示:

有時候,在攔截富客戶端軟件時,咱們一般須要使用隱形代理。富客戶端軟件一般是指運行在瀏覽器以外的客戶端軟件,這就意味着它自己不具備HTTP代理是屬性。當它進行網絡通訊時,客戶端將沒法使代理感知或者沒法由代理進行通訊。在Burp中,咱們可使用隱形代理的方式,對通訊內容進行代理或攔截,從而對通訊的請求和響應消息進行分析。使用隱形代理一般須要作以下設置(以https://example.com爲例): 1.配置hosts文件,Windows操做系統下的目錄位置Windows/System32/drivers/etc/hosts,而Linux或者Unix下的目錄爲/etc/hosts,添加以下行:

127.0.0.1 example.com

2.第一步設置完成以後,咱們須要添加一個新的監聽來運行在HTTP默認的80端口,若是通訊流量使用HTTPS協議,則端口爲443。

3.若是是HTTPS協議的通訊方式,咱們須要一個指定域名的CA證書。

4.接着,咱們須要把Burp攔截的流量轉發給原始請求的服務器。這須要在Options->Connections->Hostname Resolution 進行設置。由於咱們已經告訴了操做系統,example.com的監聽地址在127.0.0.1上,因此咱們必須告訴Burp,將example.com的流量轉發到真實的服務器那裏去。

5.經過這樣的配置,咱們就能夠欺騙富客戶端軟件,將流量發送到Burp監聽的端口上,再由Burp將流量轉發給真實的服務器。

 

【原文:burpsuite實戰指南   做者:t0data   安全脈搏整理髮布】

相關文章
相關標籤/搜索