Charles 抓取移動裝置資料包基本使用教程

Kamicloud發表於2019-06-20

Charles抓取移動裝置資料包基本使用教程

Charles是一個HTTP代理/ HTTP 監聽器 /反向代理,它使開發人員能夠檢視他們的機器和Internet之間的所有HTTP和SSL / HTTPS通訊。這包括請求、響應和HTTP頭(其中包含cookie和快取資訊)。

使用Charles,我們可以抓取移動裝置經由其代理的資料包,通過配置客戶端證照,可以得到解密後的https資料包。

Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

注:Charles是一款跨平臺的收費軟體,安裝後會獲得30天的體驗時間,在體驗期間內,每次使用最長會話不能超過30分鐘,會話結束後重新開啟可繼續使用。

使用Homebrew安裝

brew cask install charles

從官網下載安裝

https://www.charlesproxy.com/

HTTP

開啟代理服務

在配置的Proxy -> Proxy Settings

設定代理伺服器監聽的埠號,一般我們使用8888埠。

手機網路使用代理

設定手機網路代理為前一步代理伺服器的ip和埠,注意要在同一網段下。

檢視網路請求

配置完成後我們可以看到Charles已經開始捕獲網路請求了。但是這個時候捕獲到的HTTPS資料包是亂碼的,因為被加密過。如果想要得到解密後的內容,還需要對HTTPS做額外的配置。

Charles抓取移動裝置資料包基本使用教程

HTTPS

本機安裝Charles 證照

與網路上的教程直接 Help -> Install Charles Root Certificate不同

這一步我們先要儲存證照到本地,因為Mac的安全策略不允許把證照安裝到System Roots。

選擇 Help -> Sava Charles Root Certificate

儲存本地後,需要安裝證照。
直接執行證照檔案、Help -> Install Charles Root Certificate或者執行Key Chain Access都可以。
開啟證照管理後,拖入到System下

Charles抓取移動裝置資料包基本使用教程

此時證照並沒有被信任,雙擊未被信任的證照。

選擇總是信任

Charles抓取移動裝置資料包基本使用教程

移動裝置安裝證照

確認移動裝置已經使用Charles代理後,瀏覽器訪問下面的地址,下載證照並安裝。

chls.pro/ssl

一般瀏覽器開啟後會預設提示安裝,一些手機需要額外處理。

如小米手機預設瀏覽器無法自動安裝,可以使用edge瀏覽器下載。

iphone安裝後需要在配置中信任證照。

配置需要抓取的域名

開啟 Help -> SSL Proxy Settings

新增需要抓包的域名,埠為443

全部配置完畢後,可以看到介面資料已經被解密。

安卓可以抓取瀏覽器https,但無法抓取應用內https資料

由於安卓的安全設定,應用可以不使用系統提供的證照自行驗證,這類應用如微信。

有人說可以替換系統根證照實現,懂安卓可以嘗試下。

iphone強制app使用系統證照,所以可以抓取ipone app的資料作為替代。

其他問題待補充

相關文章