1,什么是Fiddler
Fiddler是一個http協議調試代理工具,它能夠記錄客戶端和服務器之間的所有 HTTP請求,可以針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至可以修改服務器返回的數據,功能非常強大,是web調試的利器。我這里找不到包就是因為代理的問題。
2,Fiddler工作原理
Fiddler是以代理web服務器的形式工作的,它使用代理地址:127.0.0.1,端口:8888. 當Fiddler啟動后將自己變成一個代理服務器,這個代理服務器默認監聽127.0.0.1:8888.然后打開IE的時候,IE瀏覽器會以127.0.0.1:8。 退出的時候它會自動注銷代理,這樣就不會影響別的程序。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動注銷,會造成網頁無法訪問。那他是怎樣的工作原理呢。
首先fiddler截獲客戶端瀏覽器發送給服務器的https請求, 此時還未建立握手。
第一步, fiddler向服務器發送請求進行握手, 獲取到服務器的CA證書, 用根證書公鑰進行解密, 驗證服務器數據簽名, 獲取到服務器CA證書公鑰。
第二步, fiddler偽造自己的CA證書, 冒充服務器證書傳遞給客戶端瀏覽器, 客戶端瀏覽器做跟fiddler一樣的事。
第三步, 客戶端瀏覽器生成https通信用的對稱密鑰, 用fiddler偽造的證書公鑰加密后傳遞給服務器, 被fiddler截獲。
第四步, fiddler將截獲的密文用自己偽造證書的私鑰解開, 獲得https通信用的對稱密鑰。
第五步, fiddler將對稱密鑰用服務器證書公鑰加密傳遞給服務器, 服務器用私鑰解開后建立信任, 握手完成, 用對稱密鑰加密消息, 開始通信。
第六步, fiddler接收到服務器發送的密文, 用對稱密鑰解開, 獲得服務器發送的明文。再次加密, 發送給客戶端瀏覽器。
第七步, 客戶端向服務器發送消息, 用對稱密鑰加密, 被fidller截獲后, 解密獲得明文。
由於fiddler一直擁有通信用對稱密鑰, 所以在整個https通信過程中信息對其透明。
3,fiddler安裝后抓不了包的問題
一般能支持HTTP代理的任意程序的數據包都能被Fiddler嗅探到,Fiddler的運行機制其實就是本機上監聽8888端口的HTTP代理。 Fiddler啟動的時候默認IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設置的,所以將瀏覽器的代理改為127.0.0.1:8888就可以監聽數據了。