滲透測試神器——Burp的使用


公眾號:白帽子左一

版本說明:Burp Suite2.1

下載地址:

鏈接:https://pan.baidu.com/s/1JPV8rRjzxCL-4ubj2HVsug

提取碼:zkaq

使用環境:jre1.8以上

下載鏈接:https://pan.baidu.com/s/1wbS31_H0muBBCtOjkCm-Pg

提取碼:zkaq

工具說明:Burp Suite 是用於攻擊web 應用程序的集成平台

引言

在全球最受安全人員歡迎的工具榜單中,Burp Suite這個工具排名第一,並且排名第二的工具和它的功能和作用是一樣的,並且還是免費的。

 

burp這個工具還是付費的,還能一直保持第一。

 

可見burp這個工具在我們安全圈他的地位。


Burp Suite是一款信息安全從業人員必備的集成型的滲透測試工具,它采用自動測試和半自動測試的方式,

 

包含了 Proxy,Spider,Scanner,Intruder,Repeater,Sequencer,Decoder,Comparer等工具模塊。

 

通過攔截HTTP/HTTPS的web數據包,充當瀏覽器和相關應用程序的中間人,進行攔截、修改、重放數據包進行測試。

 

所以本文會對burp的一些安裝以及使用,進行一個系統的介紹。

 

burp的安裝以及其配置


 

Burp Suite是由Java語言編寫而成,而Java自身的跨平台性,使得軟件的學習和使用更加方 便。

 

Burp Suite不像其他的自動化測試工具,它需要你手工的去配置一些參數,觸發一些自動 化流程,然后它才會開始工作。


Burp Suite可執行程序是java文件類型的jar文件。

 

因為burp這個工具是付費的。所以有很多大佬弄了這個工具的破解版,基本功能都是具備的,知識許多高級工具會受限制,無法使用。


在burp工具下載安裝之前,要確保自己的電腦本地安裝了java環境。

 

網站上面有很多教程,我們直接按步驟安裝就可以了。

 

安裝完java環境之后,打開cmd命令行,如果呈現出來下圖所示的效果,就證明java環境已經安裝好了。

 

 

 

 

 

  • Burp Suite是一個無需安裝軟件,下載完成后,直接從命令行啟用即可。

     

    這時,你只要在 cmd里執行java -jar /你burp工具的路徑/burpSuite名字.jar即可啟動Burp Suite,或者,在工具所在路徑下面打開cmd命令行,輸入Java -jar burpSuite名字.jar

 

 

 

 

 

burp代理和瀏覽器設置

Burp Suite代理工具是以攔截代理的方式,攔截所有通過代理的網絡流量,如客戶端的請求數據、服務器端的返回信息等。

Burp Suite主要攔截http和https協議的流量,通過攔截,Burp Suite以中間人的方式,可以對客戶端請求數據、服務端返回做各種處理,以達到安全評估測 試的目的。

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

當Burp Suite 啟動之后,默認攔截的代理地址和端口是127.0.0.1 :8080,我們可以從Burp Suite的proxy選項卡的options上查看。如圖:

 

 

 

 


FireFox設置

 

  • 系統代理

  1. 啟動FireFox瀏覽器,點擊右上角三條橫線,點擊【選項】。

 

 

 


2.在出現的搜索框里輸入代理,點擊【設置】。

 

 

 

 

 

3.勾選手動代理配置,找到“http代理”,填寫127.0.0.1,端口 填寫8080,最后點擊【確認】保存參數設置,完成FireFox的代理配置。

 

 

 

 

  • 擴展插件
    FireFox瀏覽器中,可以添加FireFox的擴展組件,對代理服務器進行管理。例如 FoxyProxy、FireX Proxy、Proxy Swither都是很好用的組件,這里對FoxyProxy進行一個講解。


    1.啟動FireFox瀏覽器,點擊右上角三條橫線,點擊【附加組件】。

 

 

 



2.在出現的搜索框里輸入proxy。

 

 

 

 

  1. 呈現出的所有插件都是和代理相關的,選擇你要安裝的插件就可以了。

 

 

 


4.安裝成功之后,會在瀏覽器右上角出現對應插件的標志。

點擊插件,點擊【選項】。

 

 

 

 

5.對應把我們攔截的IP,攔截的端口添加上去。

 

 

 



6.使用哪一個代理的時候,就勾選對應的代理名稱即可。

 

 

 

 

 

如何使用burp代理

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

使用burp的流程如下:

  1. 首先,再確認burp工具安裝成功,能正常運行之后,並且已經完成瀏覽器的代理 服務器配置。

     

  2. 打開Proxy功能中的Intercept選項卡,確認攔截功能也就是能夠抓數據包為“Interception is on”狀態,如果顯示 為“Intercept is off”則點擊它,打開攔截功能。

 

圖片


3.打開瀏覽器,輸入你需要訪問的URL
(以靶場地址http://59.63.200.79:8004/shownews.asp?id=171 為例)並回車,這時你 將會看到數據流量經過Burp Proxy並暫停,直到你點擊【Forward】,才會繼續傳輸下去。

如果你點擊了【Drop】,則這次通過的數據將會被丟失,不再繼續處理。


4.當我們點擊【Forward】之后,我們將看到這次請求返回的所有數據。

 

 

 

 

 


當Burp Suite攔截的客戶端和服務器交互之后,我們可以在Burp Suite的消息分析選項卡中查看這次請求的實體內容、消息頭、請求參數等信息。

消息分析選項視圖主要包括以下四項:

 

  • Raw:web請求的raw格式,包含請求地址、http協議版本、主機頭、瀏 覽器信息、Accept可接受的內容類型、字符集、編碼方式、cookie等。我們可以手工去修改這些信息,對服務器端進行滲透測試。

  • params:客戶端請求的參數信息、包括GET或者POST請求的參數、 Cookie參數。滲透人員可以通過修改這些請求參數來完成對服務器端的滲透測試。

  • headers:與Raw顯示的信息類似,只是在這里面展示得更直觀。

  • 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功能有點類似,即對當前攔截的消息設置高亮,以便於其他的請求消息相區分。

 

 

 

 

 

 

 

 

SSL和Proxy高級選項

在前面一章的基礎上,我們已經僅僅能夠抓HTTP的數據包。

接下來我們繼續學習如何抓https的包。

HTTPS協議是為了數據傳輸安全的需要,在HTTP原有的基礎上,加入了安全套接字層SSL協議,通過CA證書來驗證服務器的身份,並對通信消息進行加密。

基於HTTPS協議這些特性, 我們在使用Burp Proxy代理時,需要增加更多的設置,才能攔截HTTPS的數據包。

CA證書的安裝

我們都知道,在HTTPS通信過程中,一個很重要的介質是CA證書。

一般來說,Burp Proxy代理過程中的CA主要分為如下幾個步驟(以火狐瀏覽器為例子)

  1. 首先,根據前面學習的內容,我們已經已配置好Burp Proxy監聽端口和瀏覽器代理服務器設置。

  2. 在burp打開的情況下,在瀏覽器URL欄的地方輸入,你所攔截的IP和你所攔截的端口。127.0.0.1:8080

圖片
3.點擊CA證書,點擊【保存文件】。

 

 

圖片
CA證書安裝成功之后,就可以抓https的包了。

Proxy監聽設置

當我們啟動Burp Suite時,默認會監聽本地回路地址的8080端口,除此之外,我們也可以在默 認監聽的基礎上,根據我們自己的需求,對監聽端口和地址等參數進行自由設置。

 

特別是當 我們測試非瀏覽器應用時,無法使用瀏覽器代理的方式去攔截客戶端與服務器端通信的數據 流量,這種情況下,我們會使用自己的Proxy監聽設置,而不會使用默認設置。

 

  • Proxy監聽設置

 

 

當我們在實際使用中,可能需要同時測試不同的應用程序時,我們可以通過設置不同的代理 端口,來區分不同的應用程序,Proxy監聽即提供這樣的功能設置。

 

 

點擊圖中的【Add】按鈕,會彈出Proxy監聽設置對話框,里面有更豐富的設置,滿足我們不同的測試需求。

 

 

 

請求處理Request Handling 請求處理主要是用來控制接受到Burp Proxy監聽端口的請求 后,如果對請求進行處理的。

 

 

 

 

圖片

Burp工具之Intruder模塊

Burp Intruder作為Burp Suite中一款功能極其強大的自動化測試工具,通常被系統安全滲透測試人員被使用在各種任務測試的場景中。

Intruder使用場景和操作步驟

在滲透測試過程中,我們經常使用Burp Intruder,它的工作原理是:Intruder在原始請求數據的基礎上,通過修改各種請求參數,以獲取不同的請求應答。

 

每一次請求中,Intruder通常會攜帶一個或多個Payload,在不同的位置進行攻擊重放,通過應答數據的比對分析來獲得需要的特征數據。

 

Burp Intruder通常被使用在以下場景:

 

  1. 標識符枚舉Web應用程序經常使用標識符來引用用戶、賬戶、資產等數據信息。例如:用戶名,文件ID和密碼等。

     

  2. 提取更加精准,有用的數據 在某些場景下,而不是簡單地識別有效標識符,你需要通過簡單標識符提取一些其他的數據。

    比如說,你想通過用戶的個人空間id,獲取所有用戶在個人空間標准的昵稱和年齡。

     

  3. 模糊測試,如SQL注入,跨站點腳本和文件路徑遍歷可以通過請求參數提交各種測試字符串,並分析錯誤消息和其他異常情況,來對應用程序進行檢測。

    由 於的應用程序的大小和復雜性,手動執行這個測試是一個耗時且繁瑣的過程。

    這樣的場景,您可以設置Payload,通過Burp Intruder自動化地對Web應用程序進行模糊測試。

使用Burp Intruder進行測試時,步驟為:

 

  1. 確認Burp Suite安裝正確並正常啟動,且完成了瀏覽器的代理設置。

  2. 進入Burp Proxy選項卡,並通過右擊菜單,發送到Intruder。

 

 

3.進行Intruder 選項卡,打開Target和Positions子選項卡。

這時,你會看到上一步發送過來 的請求消息。

 

4.因為我們了解到Burp Intruder攻擊的基礎是圍繞剛剛發送過來的原始請求信息,在原始信息指定的位置上設置一定數量的攻擊Payload,通過Payload來發送請求獲取應答消息。

默認情況下,Burp Intruder會對請求參數和Cookie參數設置成Payload position,前綴添加 $符合,當發送請求時,會將$標識的參數替換為 Payload。


5.在Position界面的右邊,有【Add $】、【Clear $】、【Auto $】、【Refersh $】四個按 鈕,是用來控制請求消息中的參數在發送過程中是否被Payload替換,如果不想被替換,則選擇此參數,點擊【Clear $】,即將參數前綴$去掉。


6.當我們打開Payload 子選項卡,選擇Payload的生成或者選擇策略,默認情況下選 擇“Simple list”,當然你也可以通過下拉選擇其他Payload類型或者手工添加。

7.此時在界面的右上角,點擊【Start attack】,發起攻擊。


8.此時,Burp會自動打開一個新的界面,包含攻擊執行的情況、Http狀態碼、長度等結果信息。


 

 

 

 

9.我們可以選擇其中的某一次通信信息,查看請求消息和應答消息的詳細。

 

觀察那些長度異常的結果。

Burp工具之Repeater模塊

Burp Repeater作為Burp Suite中一款手工驗證HTTP消息的測試工具,通常用於多次重放請求 響應和手工修改請求消息的修改后對服務器端響應的消息分析。

Repeater的使用

在滲透測試過程中,我們經常使用Repeater來進行請求與響應的消息驗證分析,比如修改請 求參數,驗證輸入的漏洞;修改請求參數,驗證邏輯越權;從攔截歷史記錄中,捕獲特征性 的請求消息進行請求重放。Burp Repeater的操作界面如下圖所示:

 

請求消息區為客戶端發送的請求消息的詳細信息,Burp Repeater為每一個請求都做了請求編 號,當我們在請求編碼的數字上雙擊之后,可以修改請求的名字,這是為了方便多個請求消 息時,做備注或區分用的。

 

在編號的下方,有一個【GO】按鈕,當我們對請求的消息編輯完之后,點擊此按鈕即發送請求給服務器端。

 

服務器的請求域可以在target處進行修改,如上圖所示。

 

應答消息區為對應的請求消息點擊【GO】按鈕后,服務器端的反饋消息。

 

通過修改請求消息的參數來比對分析每次應答消息之間的差異,能更好的幫助我們分析系統可能存在的漏洞。

 

在我們使用Burp Repeater時,通常會結合Burp的其他工具一起使用,

比如Proxy的歷史記錄,Scanner的掃描記錄、Target的站點地圖等,通過其他工具上的右擊菜單,執行【Send to Repeater】,跳轉到Repeater選項卡中,然后才是對請求消息的修改以及請求重放、數據分析與漏洞驗證。

可選項設置(Options)

與Burp其他工具的設置不同,Repeater的可選項設置菜單位於整個界面頂部的菜單欄中,如圖所示:



可選項設置(Options)

與Burp其他工具的設置不同,Repeater的可選項設置菜單位於整個界面頂部的菜單欄中,如 圖所示:


其設置主要包括以下內容:

 

  • 更新Content-Length,這個選項是用於控制Burp是否自動更新請求消息頭中的Content-Length。

     

  • 解壓和壓縮(Unpack gzip / deflate )這個選項主要用於控制Burp是否自動解壓或壓縮服務器端響應的內容。

     

  • 跳轉控制(Follow redirections) 這個選項主要用於控制Burp是否自動跟隨服務器端作請 求跳轉,比如服務端返回狀態碼為302,是否跟着應答跳轉到302指向的url地址。它有4個選項,分別是永不跳轉(Never),站內跳轉(On-site only )、目標域內跳轉(In- scope only)、始終跳轉(Always),其中永不跳轉、始終跳轉比較好理解,站內跳轉 是指當前的同一站點內跳轉;目標域跳轉是指target scope中配置的域可以跳轉。

     

  • 跳轉中處理Cookie(Process cookies in redirections ) 這個選項如果選中,則在跳轉過 程中設置的Cookie信息,將會被帶到跳轉指向的URL頁面,可以進行提交。

     

  • 視圖控制(View) 這個選項是用來控制Repeater的視圖布局。

     

  • 其他操作(Action) 通過子菜單方式,指向Burp的其他工具組件中。

Burp工具之Target模塊

Burp Target 組件主要包含站點地圖、目標域、Target工具三部分組成,他們幫助滲透測試人員更好地了解目標應用的整體狀況、當前的工作涉及哪些目標域、分析可能存在的攻擊面等信息。

站點地圖Site Map

對封神台靶場進行抓包,進行滲透測試,通過瀏覽器瀏覽的歷史記錄在站點地圖中的展現結果。

從圖中我們可以看出,Site Map的左邊為訪問的URL,按照網站的層級和深度,樹形展示整個應用系統的結構和關聯其他域的url情況;

 

右邊顯示的是某一個url被訪問的明細列表,共訪問哪些url,請求和應答內容分別是什么,都有着詳實的記錄。

 

基於左邊的樹形結構,我們可以選擇某個分支,對指定的路徑進行掃描和抓取。

 

同時,我們也可以將某個域直接加入Target Scope中。

 

除了加入Target Scope外,從上圖中我們也可以看到,對於站點地圖的分層,可以通過折疊和展開操作,更好的分析站點結構。

 

目標域設置 Target Scope

Target Scope中作用域的定義比較寬泛,通常來說,當我們對某個產品進行滲透測試時,可以通過域名或者主機名去限制攔截內容,這里域名或主機名就是我們說的作用域;

 

如果我們想 限制得更為細粒度化,比如,你只想攔截login目錄下的所有請求,這時我們也可以在此設 置,此時,作用域就是目錄。

 

總體來說,Target Scope主要使用於下面幾種場景中:

  • 限制站點地圖和Proxy歷史中的顯示結果

  • 告訴Burp Proxy 攔截哪些請求

  • Burp Spider抓取哪些內容

  • Burp Scanner自動掃描哪些作用域的安全漏洞

  • 在Burp Intruder和Burp Repeater 中指定URL

 

通過Target Scope 我們能方便地控制Burp的攔截范圍、操作對象,減少無效的噪音。

 

在 Target Scope的設置中,主要包含兩部分功能:允許規則和去除規則。

 

 

 

 

 

 

 


其中允許規則很容易理解,即包含在此規則列表中的操作允許、有效。

如果此規則用於攔截,則請求消息匹配包含規則列表中的將會被攔截;否則,請求消息匹配去除列表中的將不會被攔截。


規則主要由協議、域名或IP地址、端口、文件名4個部分組成, 這就意味着我們可以從協議、域名或IP地址、端口、文件名4個維度去控制哪些消息出現在允 許或去除在規則列表中。


當我們設置了Target Scope (默認全部為允許),使用Burp Proxy進行代理攔截

在滲透測 試中通過瀏覽器代理瀏覽應用時,Burp會自動將瀏覽信息記錄下來,包含每一個請求和應答的詳細信息,保存在Target站點地圖中。

如何使用Target 工具


 

  • 手工獲取站點地圖
    當我們手工獲取站點地圖時,

    需要遵循以下操作步驟:

    1.設置瀏覽器代理和Burp Proxy代理。

    2.關閉Burp Proxy的攔截功能。

    3.手工瀏覽網頁,這時,Target會自動記錄站點地圖信息。這種方式的好處在於我們可以根據自己的需 要和分析,自主地控制訪問內容,記錄的信息比較准確。但缺點就是比自動抓取相比需要更長的時間進行滲透測試,對滲透人員付出的時間和精力是很大的。

     

  • 站點比較
    這是一個Burp提供給滲透測試人員對站點進行動態分析的利器,我們在比較帳號權限 時經常使用到它。

    當我們登陸應用系統,使用不同的帳號,帳號本身在應用系統中被賦予了 不同的權限,那么帳號所能訪問的功能模塊、內容、參數等都是不盡相同的,此時使用站點比較,能很好的幫助滲透測試人員區分出來。

    一般有三種場景:
    同一個帳號,具有不同的權限,比較兩次請求結果的差異;.
    兩個不同的帳號,具有不同的權限,比較兩次請求結果的差異;
    兩個不同的帳號,具有相同的權限,比較兩次請求結果的差異。

 

如何對站點進行比較:

 

1.首先我們在需要進行比較的功能鏈接上右擊, 找到站點比較的菜單,點擊菜單進入下一步。

 

 

2.由於站點比較是在兩個站點地圖之間進行的,所以我們在配置過程中需要分別指定Site Map 1和Site Map2。

 

通常情況下,Site Map 1 我們默認為當前會話。

 

如圖所示,點擊【Next】。

 

3.這時我們會進入Site Map 1 設置頁面,如果是全站點比較我們選擇第一項,如果僅僅比較我們選中的功能,則選擇第二項。

 

如下圖,點擊【Next】。如果全站點比較,且不想加載其他域時,我們可以勾選只選擇當前域。


 

 

4.接下來就是Site Map 2 的配置,對於Site Map 2我們同樣有兩種方式

 

第一種是之前我們已經保存下來的Burp Suite 站點記錄

 

第二種是重新發生一次請求作為Site Map2.這里,我們選擇第二種方式。

 

5.如果上一步選擇了第二種方式,則進入請求消息設置界面。

 

在這個界面,我們需要指定通信 的並發線程數、失敗重試次數、暫停的間隙時間。

 

6.設置完Site Map 1 和Site Map 2之后,將進入請求消息匹配設置。

 

在這個界面,我們可以通過URL文件路徑、Http請求方式、請求參數、請求頭、請求Body來對匹配條件進行過濾。

7.設置請求匹配條件,接着進入應答比較設置界面。

 

在這個界面上,我們可以設置哪些內容我們指定需要進行比較的。

 

從下圖我們可以看出,主要有響應頭、form表單域、空格、MIME 類型。

 

點擊【Next】。

 

8.如果我們之前是針對全站進行比較,且是選擇重新發生一次作為Site Map2的方式,則界面加載過程中會不停提示你數據加載的進度

 

如果涉及功能請求的鏈接較少,則很快進入比較界面。如下圖。

 

 

9.從上圖我們可以看到,站點比較的界面上部為篩選過濾器,下部由左、中、右三塊構成。

 

左邊為請求的鏈接列表,中間為Site Map 1 和Site Map 2的消息記錄,右邊為消息詳細信息。

 

當我們選擇Site Map 1某條消息記錄時,默認會自動選擇Site Map 2與之對應的記錄,這是有右上角的【同步選擇】勾選框控制的,同時,在右邊的消息詳細區域,會自動展示Site Map 1與Site Map 2通信消息的差異,包含請求消息和應答消息,存在差異的地方用底色標注出來。



  • 攻擊面分析
    我們來看一下Analyze Target的使用:1.首先,我們通過站點地圖,打開 Analyze Target。


2.在彈出的分析界面中,我們能看到概況、動態URL、靜態URL、參數4個視圖。


3.概況視圖主要展示當前站點動態URL數量、靜態URL數量、參數的總數、唯一的參數名數目,通過這些信息,我們對當前站點的總體狀況有粗線條的了解。


4.動態URL視圖展示所有動態的URL請求和應答消息,跟其他的工具類似,當你選中某一條消息時,下方會顯示此消息的詳細信息。


5.靜態和動態的URL視圖是類似的。


6.參數視圖有上中下三部分組成,上部為參數和參數計數統計區,你可以通過參數使用的次數進行排序,對使用頻繁的參數進行分析;中部為參數對於的使用情況列表,記錄對於的參數每一次的使用記錄;下部為某一次使用過程中,請求消息和應答消息的詳細信息。


在使用攻擊面分析功能時,需要注意,此功能主要是針對站點地圖中的請求URL進行分析,如果某些URL沒有記錄,則不會被分析到

 

同時,在實際使用中,存在很點站點使用偽靜態,如果請求的URL中不帶有參數,則分析時無法區別,只能當做靜態URL來分析。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM