banner
RandyChan

RandyChan

深漂 / Back-end developer
github

使用 Charles 對電腦和手機進行抓包

Charles 簡介#

Charles 是一款 HTTP 代理 / HTTP 監聽 / 方向代理伺服器軟體。開發人員可以使用 Charles 看到計算機和互聯網之間的 HTTP 和 HTTPS 信息。包括請求,響應和 HTTP 請求頭 (Cookie 和快取信息)。

安裝和使用 Charles#

點擊鏈接 https://www.charlesproxy.com/download/ 下載對應的版本進行安裝
以 macOS 版本為例:

  1. 下載 dmg 檔案 點擊此處可下載 4.5.6 版本
  2. 雙擊打開 dmg 檔案,點擊 accept 然後把應用檔案拖動到 Applications 目錄。
  3. 隨後就可以在啟動台打開 Charles。
  4. 啟動 Charles 後會出現如下彈窗索取權限,點擊 Grant Privileges 同意後輸入密碼同意授權。
    image
  5. 隨後勾選 Proxy - macOS Proxy 啟動系統代理。然後使用瀏覽器訪問百度就可以在左側看到我們剛才請求百度的 HTTP 請求信息。
    macOS Proxy
    Charles

安裝 SSL 證書#

進過以上步驟安裝後可以看到百度的請求下面出現 unknown,原因是百度使用的是 HTTPS 使用 SSL 經過加密傳輸,我們只需安裝上 Charles 的證書即可獲取到請求信息。
選擇 Help - SSL Proxying - Install Charles Root Certificate
Install Charles Root Certificate
點擊之後會彈出一個添加證書的彈窗選擇添加即可
Add Certificate
添加之後我們打開鑰匙串訪問這個系統軟體,在右上方搜索 Charles 就可以找到剛才安裝的證書,安裝之後是不信任的證書。
鑰匙串訪問
雙擊安裝的證書,點開信任一欄,選擇始終信任,然後關閉窗口輸入密碼。如圖所示:
信任證書

配置 SSL 代理#

進入 Proxy - SSL Proxying Settings 點擊 Add 添加需要監聽的域名和端口,支持 * 通配符 SSL 通常是 443 端口。
添加 SSL 代理
這裡我們添加兩個配置,即可應用絕大多數 HTTPS 請求,添加完成之後就可以愉快的抓取 HTTPS 請求了。

  • *:443
  • *:*
    SSL Proxying Settings

再次訪問百度點開請求路徑選擇 Contents 一欄就可以請求和響應信息。
Contents

抓包 IOS 手機#

配置代理#

  1. 首先確保手機和電腦處於同一網路內,點擊 Help - Local IP Address 查看電腦 IP,點擊 Proxy - Proxy Settings 查看代理端口默認是 8888。

  2. 打開手機進入 設定 - 無線局域網 - 點擊已連接上 WI-FI 右側的感嘆號。(確保電腦和手機處於局域網內!)

  3. 滑倒最下面點擊 配置代理 選擇手動,填入 IP 和 端口信息。如下圖所示:
    IOS 配置代理

  4. 隨後 Charles 會彈出一個連接請求點擊 Allow (如果點擊到了 Deny 請重啟 Charles)

隨後打開手機瀏覽器訪問百度之後會提示 此連接非私人連接 是因為我們手機還未安裝 Charles 的證書。

IOS 安裝 Charles 證書#

  1. 打開 Charles 選擇 Help - SSL - Install Charles Root Certificate on a Mobile Device or Remote Browser
    image
  2. 使用 Safari 瀏覽器打開 chls.pro/ssl 點擊允許安裝描述檔。確保設備處於局域網下並配置代理正確。
  3. 隨後手機進入 設定 - 通用 - 描述檔 可以看到多了一個 Charles Proxy CA 的描述檔,點擊該描述檔,點擊右上角的安裝。
  4. 安裝完成後進入 設定 - 通用 - 關於本機 - 證書信任設定 (最下面) 點擊信任 Charles Proxy CA 的證書。

至此手機的證書設定就完成了。

抓包微信小程序#

如果你只需要抓取手機上的請求可以暫時關閉 Proxy - macOS Proxy (快捷鍵:Shift + command + P) 減少電腦請求對手機抓包的干擾。

打開一個小程序(本文使用微信指數小程序)
操作小程序發送一個請求
微信指數

打開 Charles 查看請求信息即可看到響應的 json 信息
image

謝致#

感謝你的閱讀,讓我們一起探索知識,共同成長。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。