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