抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

AsSun發表於2019-04-20

背景

目前做的系統有一部分模組是基於微信的第三方網站,微信頁面在平時的開發與測試過程中出現問題的時候,由於無法像瀏覽器一樣可以通過控制檯檢視請求資訊,所以定位和排查問題的時候會比較麻煩。為了解決移動端除錯困難的問題,我們使用了 Fiddler4 這一款工具來抓取移動裝置上的請求資訊。下面主要就是介紹一下使用 Fiddler4 這款工具來抓取移動端 Https 請求。

Fiddler 介紹

  • Fiddler 是一款強大的抓包工具,它的原理是以 Web 代理伺服器攔截請求的形式進行工作的。
  • 代理就是在客戶端和伺服器之間設定一道關卡,客戶端先將請求資料傳送出去後,代理伺服器會將資料包進行攔截,代理伺服器再冒充客戶端傳送資料到伺服器;同理,伺服器將響應資料返回,代理伺服器也會將資料攔截,再返回給客戶端。
  • Fiddler 可以抓取支援 Http 代理的任意程式的資料包,如果要抓取 Https 會話,要先安裝證書。
  • 下載地址

配置

安裝完開啟軟體,介面左側即抓取到的請求列表

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

介面右側即單個請求的 http 協議詳情,上面為請求的 request ,下半部分是請求的 response

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

移動端抓包與 Https 配置

  • Tools-> Options-> Https 標籤, A 區域如下圖勾選

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

  • B 區域選中藍色 ;ssl3;tls1.0

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

  • 在彈出框,將提示中的 ; ssl2; ssl3; tls1.0; tls1.1; tls1.2 複製貼上入對話方塊,點選 Ok ,如下圖 (這一步用於配置 Https 的解析協議,針對不同的手機,所需要的 Https 解析協議是不同的,在下文中,會給出團隊幾個已經測試過的機型以及對應的配置。)

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

C區域點選 Actions 標籤,點選 ‘trust root certificate’ 在本機安裝證書。

  • connections 標籤如下圖配置即可

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

  • Https 協議下,Resposebody 會需要解析,如下圖點選紅框區域即可解析。

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

手機設定

  • 手機首先得連線無線,確保手機與電腦處於同一區域網下,檢視本機 ip,如本機 ip 為:10.136.16.43,手機連線無線,Wifi 設定 Http 代理為手動,伺服器設定為電腦的 ip ,埠為 8888,如下圖所示:

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

  • 開啟瀏覽器,輸入 ip:8888,如本機輸入的是 10.136.16.43:8888

抓包工具 Fiddler4 配置移動裝置抓取 Https 請求

點選最下方的 FiddlerRoot Certificate ,按照提示安裝證書,然後進入設定->關於本機->證書信任設定-》勾選 DO_NOT_TRUST_FiddlerRoot (必做),安裝完證書後安裝完即可抓取到手機端的請求。

MIUI 手機安裝證書

  • 手機開啟系統設定->更多應用
  • 找到“檔案”(完全匹配)->啟動
  • MIUI 系統設定->更多設定
  • 系統安全->加密與憑據
  • 從儲存裝置安裝(證書)->選擇 pem 檔案
  • 填寫證書名稱(隨便,比如叫 Charles)->憑據用途選擇“VPN和應用”(似乎不能選 WLAN)

存在的問題

  • Fiddler 這個軟體每次更新完配置,需要關閉軟體重啟軟體,防止出現配置沒有應用的問題。
  • 手機在設定完之後可能會遇到 “Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm” 或者開啟瀏覽器無法訪問網頁等問題,這個問題是由於 Fiddle4 設定的 Https 協議與手機不適配,遇到這類問題在設定 Https 協議的時候,依次填寫單個協議,不要一下子全複製上,因為解析的時候可能存在優先順序。通過重試查詢出自己手機能夠識別解析的一個 Https 協議。

相關文章