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