網絡安全自學篇:Burp Suite工具安裝配置、Proxy基礎用法

一.Burp Suite工具安裝及配置


1.Burp Suite

Burp Suite是用於Web應用安全測試、攻擊Web應用程序的集成平台,它將各種安全工具無縫地融合在一起,以支持整個測試過程中,從最初的映射和應用程序的攻擊面分析,到發現和利用安全漏洞。

Burp Suite為這些工具設計了許多接口,以加快攻擊應用程序的過程。所有工具都共享一個請求,並能處理對應的HTTP 消息、持久性、認證、代理、日誌、警報。Burp Suite結合先進的手工技術與先進的自動化,使你的工作更快,更有效,更有趣。

Burp Suite是Java編寫的,所以在使用前需要安裝JDK環境,這裡不進行具體講解如何安裝JDK。作者從CSDN下載了一個版本,並能正常運行。

官方下載地址:https://portswigger.net/burp

2.安裝

安裝過程非常簡單,傻瓜式點擊「下一步」安裝。

安裝成功之後運行如下所示,點擊「Next」 -> 「Start Burp」顯示主界面。

3.功能

Burp Suite的模塊幾乎包含整個安全測試過程,從最初對目標程序的信息採集,到漏洞掃描及其利用,多模塊間高融合的配合,使得安全測試的過程更加高效。主要模塊如下 :

  • Target(目標): 顯示目標目錄結構。
  • Proxy(代理): Burp Suite設置代理,抓取數據包。用於攔截HTTP/S的代理服務器,作為瀏覽器和目標應用程序之間的中間件,允許你攔截、查看、修改兩個方向上的原始數據流。
  • Spider(蜘蛛): Burp Suite的蜘蛛功能是用來抓取Web應用程序的鏈接和內容等。
  • Scanner(掃描器): 高級工具,它能自動地發現Web應用程序的安全漏洞。主要用來掃描Web應用程序漏洞,發現常見的web安全漏洞,但會存在誤報的可能。
  • Intruder(入侵): 一個定製的高度可配置工具,可以對Web應用程序進行自動化攻擊和暴力猜解,如:枚舉標識符,收集有用的數據,以及使用fuzzing技術探測常規漏洞。
  • Repeater(中繼器): 對數據包進行重放(手動操作來觸發單獨的HTTP請求),分析服務器返回情況和響應,判斷修改參數的影響。
  • Sequencer(會話): 用來檢查Web應用程序提供的會話令牌的隨機性,分析那些不可預知的應用程序會話令牌和重要數據項的隨機性,並執行各種測試。
  • Decoder(解碼器): 對數據進行加解密操作,包含url、html、base64等等。
  • Comparer(對比): 用來執行任意兩個請求、響應或任何其它形式的數據之間的比較,通常是通過一些相關的請求和響應得到兩項數據的一個可視化的「差異」。
  • Extender(擴展): 加載Burp Suite的擴展,使用你自己的或第三方代碼來擴展Burp Suite的功能。
  • Options(設置): 對Burp Suite的一些設置,如burp、字體、編碼等。
  • Alerts(警告): 用來存放報錯信息的,用來解決錯誤。

4.配置代理

(1)添加foxyproxy附件功能。

在「設置」->「添加附件」中搜索「foxyproxy」。

添加安裝該附件,如下圖所示。

點擊添加安裝。

添加成功之後,可以選擇打開FoxyProxy功能或關閉,如下圖所示。

(2)設置火狐瀏覽器Firefox本地代理。在「網絡」中設置HTTP代理為127.0.0.1,端口號為9090。

(3)接着設置Burp Suite代理,添加127.0.0.1且端口號為9090的代理,並使用它。

(4)用火狐瀏覽器打開網站則可獲取網頁相關信息。


二.Burp Suite工具Tareget


瀏該功能主要用於查看網站的目錄及元素,這裡以某學校的管理系統為例,該網站的目錄顯示如下。

獲取內容包括Host、提交方法、URL、參數、狀態碼、標題、Comment、Time等,並且能夠設置對應網址的注釋Comment,如作者添加了「登錄頁面」注釋。

右下部分能顯示Request請求和Response響應信息,包括Raw、Headers、Hex、HTML等,如下圖所示。

點擊Site map左腳上部分,能夠選擇要顯示的信息,包括顯示HTML、CSS、Images等,顯示狀態碼2xx、3xx、4xx、5xx等,顯示和隱藏設置等。該功能可以按照請求類型、請求的狀態、mime類型、搜索關鍵字、文件後綴、監聽的端口等等,按個人需求去縮小需要的範圍。

比如作者設置只顯示2xx狀態碼頁面,則顯示如下圖所示。

同時,可以為不同的條目自定義設置背景顏色,代表不同的功能或類型。如果認為某個數據包比較重要,可將當前數據包設置某個醒目的顏色以提示其重要性

選中鏈接右鍵能實現更多功能,比如Spider、Scope等。

Scope主要是配合Site map做一些過濾的功能,如圖所示。


三.Burp Suite工具Proxy


Proxy主要包括Intercept、HTTP histroy 、Websockets history、Options四個標籤。

參考文章:

  • BurpSuite基礎教程第八發:其他操作(HTTPS流量抓取&過濾器的使用)
  • BurpSuite基礎教程第二發:Proxy模塊(代理模塊)
  • Web安全 — BurpSuite實戰(上)
  • 博客園Burp Suite使用介紹
  • 《Web攻防之業務安全實戰指南》作者:陳曉光等大神

1.Intercept模塊

該模塊主要是控制抓取到的數據包,用於顯示修改HTTP請求及響應內容,並可以將攔截的HTTP請求快速發送至其他模塊處理。

比如當「Intercept is on」開啟時,火狐瀏覽器輸入用戶名和密碼點擊登錄,則可以看到Burp Suite攔截的用戶名和密碼。

  • Raw:以純文本形式顯示數據包

  • Params:包含參數URL 查詢字符串、cookies請求,並可雙擊該請求進行修改。

  • Headers:以名稱、值的形式顯示獲取的數據包。

  • Hex:可編輯數據包的二進制數據,在進行00截斷時非常好用。

  • 攔截信息如下所示,其中密碼為MD5加密。
POST /cas/login HTTP/1.1Host: xxxxx.edu.cnUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Referer: http://xxxxx.edu.cn/cas/loginCookie: key_dcp_cas=nyfjdGZGmmYYdbN1fv2G349LydwzRhnrbGLqj4LMpRGd1YL3Qstl!-94055740Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 221service=http%3A%2F%2Fi.xxxx.edu.cn%2Fdcp%2Findex.jsp&serviceName=null&loginErrCnt=0&username=20190804&password=e10adc3949ba59abbe56e057f20f883e&replace-pwd=...


在線解密,可以看到密碼為「123456」,當然,這是錯誤的用戶名和密碼。

username=20190804 password=e10adc3949ba59abbe56e057f20f883e

2.HTTP histroy模塊

該模塊將記錄經過代理服務器訪問的所有請求,即使當Intercept is off時也會記錄。包括Host(主機)、Method(請求方式)、URL(請求地址)、Params(參數)、Edited(編輯)、Status(狀態)、Length(響應位元組長度)、MIME type(響應的MLME類型)、Extension(地址文件擴展名)、Title(頁面標題)、Comment(注釋)、SSL、IP(目標IP地址)、Cookies、Time(發出請求時間)、Listener port(監聽端口)。

當我們選中某個請求時,可以看他的請求包信息,同樣也可查看他的響應包信息。

雙擊某個數據包即可打開詳情,通過Previous/next功能切換到其他數據包,同時,也可將該數據包發送到其他功能模塊當中。

3.Websockets history模塊

該模塊用於記錄WebSockets的數據包,是HTML5中最強大的通信功能,定義了一個全雙工的通信信道,只需Web上的一個 Socket即可進行通信,能減少不必要的網絡流量並降低網絡延遲。

4.Options模塊

該模塊主要用於設置代理監聽、請求和響應、攔截反應、匹配和替換、ssl等。

(1)設置代理

偵聽從您的瀏覽器傳入的連接本地HTTP代理服務器。它允許您監視和攔截所有的請求和響應,並且位於BurpProxy的工作流的心臟。默認情況下,Burp默認監聽12.0.0.1地址,端口8080。

(2)配置攔截規則

置攔截的匹配規則,當Intercept request based on the following rules為選中狀態時,burpsuite會配置列表中的規則進行攔截或轉發。注意:如果該複選框未選中,那麼即使Intercept is on也無法截取數據包。

如下圖所示,創建一個規則:只攔截請求頭中匹配DVWA的數據包。在實際使用過中我們可能需要創建更多更複雜的規則,來找到想要的數據包。

(3)配置攔截規則 Intercept Server Responses

攔截response並修改response中的返回值。

(4)Response Modification

用於執行響應的自動修改,可以使用這些選項來自動修改HTML應用程序響應中匹配的內容。比如,設置高亮隱藏部分,勾選unhide hidden form fields(顯示隱藏的表單,在html中type為hidden的表單)和prominently highlight unhidden fields(高亮隱藏部分)。

示例如下:

remove javascipt form validation 刪除javascript表單驗證。某些站點通過JavaScript過濾表單的內容,如字符串長度、文件後綴、字符串格式等,開啟後刪除驗證javascript。

更詳細的知識推薦讀者閱讀博客:

https://www.jianshu.com/p/73e1b0a974cc


四.Burp Suite工具暴庫示例


下面以某網址為例,進行簡單的暴庫測試。注意,它是HTTP的登錄請求。

第一步,用Burp Suite進行攔截請求,找到請求參數進行篡改。TextBoxUserName=15200000000

TextBoxPwd=111111

第二步,在界面中鼠標右鍵,在彈出菜單中選擇「Send to Intruder」(Ctrl+I),此時會將請求數據分發給Intruder模塊,並且Intruder變紅。

第三步,使用Burp Suite工具中的Intruder模塊進行破解參數配置,運行破解任務並成功破解用戶名和密碼。

(1)在Intruder模塊中選擇Positions選項,單擊「Clear」按鈕清楚相關默認參數前後的特殊符號「§」。

(2)鼠標選中請求數據頁面中的Password參數值(需要進行暴力破解的密碼值),單擊「Add§」按鈕進行位置標記。TextBoxPwd=§111111§

(3)選擇Payloads選項,單擊「Load items form file」,在彈出的對話框中選擇暴力破解密碼文件並單擊「打開」按鈕,將破解密碼列表導入。

(4)單擊「Start attack」按鈕開始破解測試。

(5)在彈出的窗口「Intruder attack」中可以根據返回長度Length的不同判斷破解是否成功,這裡隱藏的密碼是「013579」,它的長度最大並且為最終密碼。注意,Length越大那麼密碼吻合就越大。

也可以通過查看Response返回信息或Status返回狀態的不同信息判斷是否成功。

錯誤的密碼返回信息:

正確的密碼返回信息:

(6)通過破解的密碼嘗試登陸。

(7)如果密碼是經過MD5加密的,如上面第三部分測試的網站,則需要進行如下設置。在「Payload Processing」中點擊「Add」添加哈希MD5加密。

此時點擊攻擊如下圖所示,是經過加密的匹配。

個人建議,參考陳曉光大神的Web攻防書籍,也推薦大家閱讀。

  • 增加驗證碼,登錄失敗一次,驗證碼更換一次。
  • 配置登錄 失敗次數限制策略,如同一用戶嘗試登錄的情況下,5分鐘內登錄失敗超過4次,則禁止用此用戶在2小時內登錄系統。
  • 在條件允許情況下,增加手機接收短訊驗證碼或郵箱接收郵件驗證碼,實現雙因素認證的防暴力破解機制。

補充知識:

在系統登錄時密碼加密流程一般是先將用戶名和密碼發送到服務器,服務器會把用戶提交的密碼經過Hash算法加密後和數據庫中存儲的加密值比對,如果加密值相同,則判定用戶提交密碼正確。

但有些網站系統的流程是在前台瀏覽器客戶端對密碼進行Hash加密後傳輸給服務器並與數據庫加密值進行對比,如果加密至相同,則判定用戶提交密碼正確。此種流程不是很好,它會泄露密碼加密方式,導致安全隱患。


五.火狐瀏覽器HTTPS訪問之安全證書安裝


當我們想訪問HTTPS網站時,需要導入Burp Suite安裝證書並安裝,基本流程如下:

第一步,配置好瀏覽器代理。

第二步,在地址欄輸入http://burp,回車下載證書。注意這裡的證書不能是零位元組,不然去找破解版。

第三步,向瀏覽器中導入證書,在firefox中,選項-> 高級->證書->查看證書->證書機構。

第四步,導入證書,信任證書。

如下圖所示:

第五步,找個HTTPS網站測試即可。但作者測試百度始終沒有成果,攔截的網站也不對,無語~

參考:

https://blog.csdn.net/zyw_anquan/article/details/47904495


六.總結


寫到這裡,整篇文章結束了,其實網絡安全還是挺有意思的,尤其是最後解決了一個問題之後。每一篇文章都是站在無數大神和大佬的肩膀之上,作為一個網絡安全的初學者,深深地感受到自己有太多的東西需要學習,還好態度比較端正,每天都在一步一個腳印前行。 希望這篇基礎性文章對你有所幫助,如果有錯誤或不足之處,還請海涵。後續將分享更多網絡安全方面的文章了,從零開始很難,但秀璋會一路走下去的,加油。