渗透测试工具Burp Suite详解
Burp Suite 的安裝
-
Burp Suite是一款集成化的滲透測試工具,包含了很多功能,可以幫助我們高效地完成對Web應用程序的滲透測試和攻擊。
-
Burp Suite由Java語言編寫,基于Java自身的跨平臺性,使這款軟件學習和使用起來更方便。Burp Suite不像其他自動化測試工具,它需要手工配置一些參數,觸發一些自動化流程,然后才會開始工作。
-
Burp Suite可執行程序是Java文件類型的jar文件,免費版可以從官網下載。免費版的Burp Suite會有許多限制,無法使用很多高級工具,如果想使用更多的高級功能,需要付費購買專業版。專業版與免費版的主要區別有以下三點。
- Burp Scanner
- 工作空間的保存和恢復
- 拓展工具,如Target Analyzer、Content Discovery和Task Scheduler
burp suite就是一個抓包、改包工具
Burp的安裝一共分為三步:
1、java的安裝
2、環境變量的配置
3、運行burp
burp的安裝與基本使用
java環境
從java官網進行下載:搜索java jdk
安裝完成之后,配置環境變量:將C:\Program Files\Java\jdk1.8.0_201復制到
點擊確定
然后打開bin目錄,再將目錄C:\Program Files\Java\jdk1.8.0_201\bin復制到
點擊確定
現在可以用cmd指令輸入javac輸入java也可以
出現如圖情況,說明環境變量配置成功。
下載burp
下載地址:https://portswigger.net/burp
我這里安裝的是exe文件
雙擊安裝,一直next——》finish
打開——》I accept——》彈框選delete——》next——》start burp
免費版本沒有Scanner
Burp Suite入門
設置代理
??????burp suite代理工具是以攔截代理的方式,攔截所有通過代理的網絡流量,如客戶端的請求數據、服務端的返回信息等。burp suite主要攔截HTTP和HTTPS 寫協議的流量,通過攔截,burp以中間人的方式對客戶端的請求數據、服務端的返回信息做各種處理,以達到安全測試的目的。
??????在日常工作中,最常用的web客戶端就是web瀏覽器,我們可以通過設置代理信息,攔截web瀏覽器的流量,并對經過burp代理的流量數據進行處理。burp運行之后,Burp Proxy默認本地代理端口為8080。如圖:
HTTP的代理
以Firedox瀏覽器為例:
打開菜單——》選項——》網絡代理——》設置——》手動配置代理
127.0.0.1端口是8080
如上圖所示,設置HTTP代理為127.0.0.1,端口為8080,與burp Proxy中的代理一致
端口在0~65535之間設置
手動代理:代理到本機,因為想讓瀏覽器通過本機把流量發送到這個端口,再由burp監聽到,把包攔下來(端口的選擇要和burp一樣)
HTTP代理(因為抓的是http的包)
設置完后,burp就可以抓包了。
重新打開:
SSL看做HTTPS就行了
HTTPS的代理
我們要怎么做才能抓HTTPS的包呢?
如果要抓HTTP的包要用HTTP代理
如果要抓HTTPS的包,要用HTTPS代理(SSL proxy)
HTTP默認走的是80端口,HTTPS走的是443端口。兩者端口不一樣,要代理HTTPS就一定要用SSL去代理
設置完代理就可以了嗎?不行
HTTPS(S表示security),多添加了一套SSL層(在TCP和HTTP中間),作加密的。
burp suite有一個證書:http://burp/(輸入的是http,所以一定要代理http 才可以訪問http的網站,代理的是https就可以訪問https的網站)
安裝證書后就可以解密百度傳回的數據
導入剛剛下載的證書
這個證書的名字叫PortSwigger CA
導入后彈出的彈框(選第一個也行,都選中也行)
導入這個證書就可以解密https協議里面的亂碼數據了
現在抓一個百度的包吧!
若只設置了SSL proxy,能不能抓http是包?不能
因為沒有代理http的,只代理了https的,SSL就理解為HTTPS,所有要抓http,要設置https代理。
總結:抓https的包
抓https就代理ssl,抓http就代理http
抓https還需要導入證書
代理是代理,導入證書是導入證書,代理一定要代理ssl,導入證書是為了通過https返回來的數據可以解密(證書是解密的,SSL是代理的)
Proxy(代理)
Burp Proxy的攔截功能主要由intercept(intercept攔截/截奪)選項卡中的Forward、Drop、Interception is on/off和Action構成,他們的功能如下所示。
-
Forward(放包)表示將攔截的數據表或修改后的數據包發送至服務器端。
-
Drop(廢包)表示丟棄當前攔截的數據包
-
Interception is on(攔截請求)表示開啟攔截功能,單擊后變為interception is off(攔截禁用),表示關閉攔截功能
-
單擊Action(行動)按鈕,可以將數據包進一步發送到Spider、scanner、Repeater、Intruder等功能組件做進一步測試,同時也包含改變數據包請求方式及其body的編碼功能。(發送到其他功能組件)
打開瀏覽器,輸入需要訪問的URL并按回車鍵,這時將看到數據流量經過Burp Proxy并暫停,直到單擊Foreword按鈕,才會繼續傳輸下去。如果單擊了Drop按鈕,這次通過的數據將丟失,不再繼續處理。
當Burp Suite攔截的客戶端和服務器交互之后,我們可以在Burp Suite的消息分析選項中查看這次請求的實體內容、消息頭、請求參數等信息。Burp有四種消息類型顯示數據包:Raw、Params、Headers和Hex。
-
Raw主要顯示web請求的raw格式,以純文本的形式顯示數據包,包含請求地址、Http協議版本、主機頭、瀏覽器信息、Accept可接受的內容類型、字符集、編碼方式、cookie等,可以通過手動修改這些信息,對服務器端進行滲透測試。(Raw就是以文本的形式顯示數據包)
-
Params主要顯示客戶端請求的參數信息,包括GET或者POST請求的參數、cookie參數。可以通過修改這些請求參數完成對服務器端的滲透測試。
-
Headers中顯示的是數據包中的頭信息,以名稱、值的形式顯示數據包。
-
Hex對應的是Raw中信息的二進制內容,可以通過Hex編輯器對請求的內容進行修改,在進行00截斷時非常好用。
target
filter過濾
Spider
Spider的蜘蛛爬行功能可以幫助我們了解系統的機構,其中Spider爬取到的內容將在Target中展示
Decoder
Decoder的功能比較簡單,它是Burp中自帶的編碼解碼及散列轉換的工具,能對原始數據進行各種編碼格式和散列的轉換。
Repeater
可以重復的發一個包
API就是寫插件用的東西
在repeater里面的數據都可以相互轉發的
Extender(插件擴展/擴展程序)
BApp Store是官方插件,需要專業版才可以install
Intruder(暴力破解)
將剛剛repeater的內容發送到intruder
上圖可知:它攻擊的目標是百度,端口是443,使用的是HTTPS
把美元$清除了
比如想遍歷一下百度的目錄
攻擊方式
sniper
payload里面有三個重要的模塊
上面添加的11和22有什么效果呢?
11和22會在GET /11 GET /22
start attack一下:
Battering ram
Pitchfork
選擇pitch攻擊方式,payloads里面就有兩個payload(因為選擇了兩個地方要變化,如下圖)
(多個標記需要用不同的字典去替換)
如果有三個地方要變,就是三個payload了
將第二個payload設為33和44
Cluster bomb
相當于所有的排列組合
intruder主要就是做暴力破解的,還有一個點比較重要,就是payload processing:
比如GET的值是一個MD5,提交上去必須用明文的MD5
這里要顯示11和22的MD5怎么做呢?
把payload處理成MD5(Payload Processing——》Hash——》MD5)
點擊stack,下圖中上面一行就是11的MD5:
intruder–options中的Grep-Match★
Grep-Match:
當我們用所有字典中的內容去對數據包中的動態變量去進行替換的時候,如何判斷哪個請求是撞成功了?
這時候就要用到grep-match這個功能了
比如:當我們登錄失敗的時候會提示我們username or password is not exists~
反過來說,當我們輸入一個正確是用戶名密碼肯定不會提示username or password is not exists~
那我們就可以把這個提示的內容作為一個區分,來讓burpsuite去查找,哪些請求的響應里面沒有提示——》就意味著那個請求是正確的請求
也就是我們可以把所有響應的數據表里面包含的字符串的內容flag出來,那反過來說,沒有被flag的數據包就是撞成功的數據包
介紹一個代理插件Switchy Omega
總結
以上是生活随笔為你收集整理的渗透测试工具Burp Suite详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员,也需要学习分析与设计的方法?!
- 下一篇: 如何绘制逻辑图— 4. 要素的属性:黑盒