Fiddler抓包原理解析
一、Fiddler簡介:
Fiddler是一款免費且功能強大的數據包抓取軟件。是位于客戶端和服務器端之間的http(s)代理,它通過代理的方式獲取程序http通訊的數據,可以用其檢測網頁和服務器的交互情況,記錄所有客戶端和服務器間的http請求,針對特定的http(s)請求,分析網絡傳輸的數據,支持監視,還可以設置斷點、修改請求的數據和服務器返回的數據。Fiddler包含了一個強大的基于事件腳本的子系統,并且能夠使用.net框架語言擴展。
二、Fiddler工作原理:
Fiddler工作于OSI七層模型中的應用層,Fiddler在瀏覽器與服務器之間建立一個代理服務器,能夠捕獲通過的http(s)請求。Fiddler啟動后會自動將代理服務器設置成本機,默認端口為8888。Fiddler不僅能記錄PC上瀏覽器的網絡請求數據,還可以記錄同一網絡中的其他設備的HTTP(S)請求數據。數據傳遞流程大致如下:
?
三、Fiddler抓取HTTPS原理:
現在APP中的數據傳輸基本上都使用HTTS傳輸,傳輸的數據都是經過加密的,這增加了我們分析數據包的難度,還好Fiddler除了可以抓取HTTP數據包,還可以抓取HTTPS數據包。由于HTTPS傳輸需要使用到CA證書,所以抓取https數據包時需要做一些特殊配置。Fiddler截取HTTPS報文的流程大致如下:
(1) 客戶端請求建立HTTPS鏈接,發送客戶端支持的加密協議及版本列表等信息給服務器端。
(2) Fiddler接受客戶端請求,并偽裝成客戶端向WEB服務器發送相同的請求。
(3) WEB服務器收到Fiddler的請求以后,從請求中篩選合適的加密協議。并返回服務器CA證書,證書中包括公鑰信息。
(4)Fiddler收到WEB服務器的響應后,保存服務器證書并偽造一個自簽名的CA證書,偽裝成服務器,把該證書下發給客戶端。
(5)客戶端驗證證書合法性。(Fiddler能否抓取到HTTPS報文關鍵看這一步)
(6)客戶端生產對稱密鑰,并使用偽造的公鑰證書進行加密,發送給服務器。
(7)Fiddler攔截客戶端的請求以后,使用偽造的私鑰解密該報文,獲取對稱加密秘鑰,并使用真正服務器證書中帶的公鑰加密該對稱密鑰發送給WEB服務器。(此時對稱密鑰已經泄露了,以后可以使用該秘鑰解密客戶端和服務器端傳輸的數據)
(8)WEB服務器接收到客戶端發送的加密的對稱密鑰后,使用私鑰解密,并使用對稱密鑰加密測試數據傳給客戶端。
(9)Fiddler使用前面獲取的對稱密鑰解密報文。
(10)客戶端驗證數據無誤以后,HTTPS連接就建立完成,客戶端開始向服務器發送使用對稱密鑰加密的業務數據。
(11)Fiddler使用前面獲取的對稱密鑰解密客戶端發送的數據,并重新加密轉發給服務器端。
?
?
總結
以上是生活随笔為你收集整理的Fiddler抓包原理解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos7下 Redis的安装、配置
- 下一篇: 对称加密算法之分组加密的六种工作模式(E