burpsuite攔截https數據包(Firefox)


一、攔截https導入證書操作步驟

 

1.配置瀏覽器對http/https都使用burpsuite代理

http和https是分開的,對http使用了代理並不代表對https也使用了代理,要配置瀏覽器讓其對https也使用同樣的代理。

當然有些瀏覽器提供“為所有協議使用相同代理”的選項(比如這里的Firefox),那直接鈎選這個選項也可以。

 配置完成后訪問http的網站可以發現成功訪問,但訪問https的網站一般不可訪問,報錯如下

 

2.訪問http://burp/下載burpsuite ca證書

事實上burpsuite不會真向公網訪問http://burp/這么一個頁面,公網上也並不存在這么一個頁面,而是burpsuite監視到訪問http://burp/后會自動重定向到自己內置的證書下載頁面。

所以,首先確認已將瀏覽器配置成burpsuite代理模式,然后訪問http://burp/。界面如下:

點擊CA Certificate

 

3.將下載的證書導入瀏覽器“證書機構”項

 

4.再次訪問https網站,驗證訪問和攔截都已正常

然后不用重啟瀏覽器,再次訪問https網站可發現網站可正常訪問且burpsuite已可正常攔截。

此只以Firefox為例,不同瀏覽器原理都是導入CA證書但具體操作還有一些區別,請自行參看官方配置文檔

 

二、攔截https導入證書的原理

通過網上文章和現實觀察,感覺很多人不懂攔截https為什么要攔截證書,比如有些文章也在一本正經地教你怎么導入證書,但很多步驟要么沒意義要么根本就是誤人子弟的,所以我們這里有必要先說道一番。

首先是SSL握手過程:訪問https網站,瀏覽器向服務器發送ssl client hello請求,服務器進行響應發回自己的證書(是的每一次建立ssl連接服務器都會向客戶端發送證書不要懷疑),瀏覽器收到服務器的證書后檢測證書的簽發機構(即CA)是否在自己信任的機構列表中,如果不在則瀏覽器報錯並終止ssl握手過程如果在則繼續進行后續握手步驟。

其次是https代理原理:一方面,瀏覽器發起ssl client hello請求,burpsuite偽造成服務器,給瀏覽器發回使用burpsuite自己證書為當前目標網站簽發的證書與瀏覽器建立一個連接(我們暫稱其為C1);另burpsuite向真正的服務器發送一個ssl client hello,與真正的服務器建立另一個連接(我們暫稱其為C2)。所以真正的請求是瀏覽器通過C1向burpsuite提交數據,burpsuite又從C1中把http數據拿出來從C2提交到真正的服務器,響應過程則反過來。(burpsuite沒有服務器證書對應的私鑰所以不能直接把服務器的證書轉給瀏覽器,而只能引入自己的證書,不然到時就解不出http的內容了;burpsuite本質上即是一個中間人,或者說中間人攻擊說的就是burpsuite這種形式)

瀏覽器發現收到的證書的簽發機構不在自己的信任列表中則報錯,具體到burpsuite,返回給瀏覽器的證書是burpsuite自己的證書簽名的,而burpsuite自己的證書不在瀏覽器默認的信任CA列表中,所以導致了報錯。所以導證書我們本質上要做的就是把burpsuite的CA證書導入到瀏覽器的信任證書機構列表中的,使瀏覽器已后再接收到burpsuite簽發的證書時不再報錯。

至於瀏覽器默認信任哪些證書機構,這沒有一個強制的標准,主要由各瀏覽器自己決定。更多內容可參考鏈接:https://en.wikipedia.org/wiki/Certificate_authority

如果感覺上面說的太多,那我們簡面言之,導入的是burpsuite自己的證書作證書頒發機構用;burpsuite代理時返回給瀏覽器的證書是burpsuite針對該網站臨時簽名的證書,整個導證書操作就為了瀏覽器收到該臨時證書不會報錯。

導入的證書信息如下:

burpsuite代理該問網站時,網站證書如下:

直接訪問網站時,網站證書如下:


免責聲明!

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



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