HTTPS相對於HTTP增加了安全性,但是仍然不能有效的防止中間人攻擊(Man-in-the-MiddleAttack,簡稱“MITM攻擊”)
這就使得Fiddle工具能夠有效的監聽HTTPS流量
一個HTTPS網站的正常訪問流程是這樣的
中間人攻擊在於對瀏覽器加入自己的CA,偽造數字證書,對流量進行轉發
加入自己的CA是為了讓偽造的數字證書變得可信,欺騙過瀏覽器
偽造數字證書是為了監聽HTTPS 交互的具體內容
下面倆個圖給出了中間人攻擊的HTTPS的請求和響應兩個階段
中間人攻擊的最重要一環在於把自己的CA放入瀏覽器中,方法有很多,比如:病毒、木馬、社會工程學......
好了,原理簡單的講完了,接下來我們來設置Fiddle
首先下載Fiddle
下載地址:http://www.telerik.com/download/fiddler
至於下載哪個版本
win7以及之前的XP建議下載.net2版本,win8/8.1以及之后的版本建議下載.net4版本
原因在於:win7內置.net2,xp可以安裝.net2,win8/8.1內置.net4版本
筆者這里安裝.net4版本的
下載之后是fiddler4setup.exe,雙擊安裝不用說
接下來看配置
打開Fiddle
Tools[工具]-->Fiddler Options...[Fiddle 選項...]-->HTTPS-->勾選Decrypt HTTPS traffic[解密HTTPS流量]
Tools[工具]-->Fiddler Options...[Fiddle 選項...]-->Connections-->勾選Allow remote computers to connection[允許遠程計算機連接]
設置好后關閉重啟Fiddle
接下來我們為瀏覽器導入證書
在Fiddle Echo Service頁面中點擊FiddlerRoot certificate,然后根據瀏覽器提示導入證書
監聽安卓客戶端時,需要通過電腦設置wifi熱點,任何安卓手機連接上改熱點,證書下載地址的IP改成網關的IP
ip一般都可以通過ipconfig命令查出來
筆者查詢的結果如下
C:\Windows\system32>ipconfig Windows IP 配置 無線局域網適配器 WLAN 3: 連接特定的 DNS 后綴 . . . . . . . : 本地鏈接 IPv6 地址. . . . . . . . : fe80::481a:1efd:d5d4:a87b%23 IPv4 地址 . . . . . . . . . . . . : 192.168.253.1 子網掩碼 . . . . . . . . . . . . : 255.255.255.0 默認網關. . . . . . . . . . . . . : 無線局域網適配器 WLAN: 媒體狀態 . . . . . . . . . . . . : 媒體已斷開 連接特定的 DNS 后綴 . . . . . . . : 以太網適配器 以太網: 連接特定的 DNS 后綴 . . . . . . . : 本地鏈接 IPv6 地址. . . . . . . . : fe80::7495:5b85:a10c:3cb7%3 IPv4 地址 . . . . . . . . . . . . : 172.18.62.201 子網掩碼 . . . . . . . . . . . . : 255.255.255.0 默認網關. . . . . . . . . . . . . : 172.18.62.1 以太網適配器 VMware Network Adapter VMnet8: 連接特定的 DNS 后綴 . . . . . . . : 本地鏈接 IPv6 地址. . . . . . . . : fe80::5919:851f:5249:17f1%21 IPv4 地址 . . . . . . . . . . . . : 192.168.116.1 子網掩碼 . . . . . . . . . . . . : 255.255.255.0 默認網關. . . . . . . . . . . . . : 隧道適配器 isatap.{784B4179-BA1C-4521-9B8D-F8E29487D30B}: 媒體狀態 . . . . . . . . . . . . : 媒體已斷開 連接特定的 DNS 后綴 . . . . . . . : 隧道適配器 isatap.{0FF64FC6-5250-4E80-8D12-902E97461A8E}: 媒體狀態 . . . . . . . . . . . . : 媒體已斷開 連接特定的 DNS 后綴 . . . . . . . : 隧道適配器 isatap.{2B3C716B-2A34-478D-A21F-FE38734BC6BF}: 媒體狀態 . . . . . . . . . . . . : 媒體已斷開 連接特定的 DNS 后綴 . . . . . . . : C:\Windows\system32>
對應的IP地址為192.168.253.1,所以安卓客戶端訪問的地址為

同樣是點擊FiddlerRoot certificate,然后按提示導入證書,證書名字自己隨便起一個
別以為這樣就完了接下來還要設置HTTP/HTTPS代理,雖然Fiddle說這個代理是HTTP代理,實際上並不准確,這個代理對不能代理的協議也實現了轉發(個人覺得是直連),比如QQ和微信客戶端就沒有使用HTTP代理
代理設置大同小異
對於本機,127.0.0.1:8888 協議類型HTTP/HTTPS
對於安卓客戶端,192.168.253:8888 協議類型HTTP/HTTPS
設置完成后抓幾個HTTPS的報文