charles抓包工具使用

以下爲Mac添加各種代理(抓包)和修改請求/響應的方法

主要包括 抓包方法修改請求/響應 的講解。

一、抓包方法

  • 抓取PC端http請求
  • 抓取PC端https請求
  • 抓取手機端http請求
  • 抓取手機端https請求

抓取PC端http請求

1、勾選macOS Proxy:

在瀏覽器端發送http請求(如:http://get.sogou.com)即可抓取到數據:

抓取PC端https請求

先按 抓取PC端http請求 設置好。再執行下面操作:

1、charles安裝根證書,並添加信任

安裝證書:

添加信任(訪問鑰匙串):

2、charles允許SSL proxy

Proxy->SSl Proxying Settings下勾選“Enable SSL Proxying”,add “*:443”

以上設置後即可抓取到PC端發起的https請求。

抓取手機端http請求

1、charles設置端口號,Proxy->Proxy Settings下,添加8888端口號(也可爲其它,手機端需要跟此一致):

2、確保手機端和PC端在同一局域網。美團這邊PC端wifi與手機端不能互相訪問,需要在PC端連有線纔可。
3、手機端:設置-》Wi-Fi-》下配置代理(手動),輸入PC端的服務器(ip)、端口號(8888)
此時charles會彈出一個提示連接手機端的對話框,點擊allow即可。注:若未彈出,可重啓charles。

以上設置後即可抓取到手機端發起的http請求。

抓取手機端https請求

先按 抓取PC端https請求抓取手機端http請求 分別設置好。再執行下面操作:

1、charles根證書安裝到手機端

charles:Help->SSL Proxying->Install Charles Root Certificate on a Mobile …:

彈出彈框:

以上彈框意思是:
1、手機端瀏覽器輸入 chls.pro/ssl 來下載安裝證書(charles在 抓取PC端https請求 步驟中安裝的證書):

點擊允許後,安裝證書:

2、手機端信任此證書:Settings->通用->關於->證書信任設置,打開信任開發即可。

按上面兩個步驟完成手機端證書的安裝。
現在可以抓取手機端https請求了,展示如下:

二、修改請求、響應

  • 替換response爲本地文件
  • 替換response爲遠端文件
  • 修改request、response(header)數據

http://ww.baidu.com 爲例。

替換response爲本地文件

即用本地文件替代一個request的響應,使每次發出該請求,都會返回本地文件數據。

1、本地文件的創建

方法一:右鍵一個請求,選擇 “Save Response”, 保存爲本地文件(修改該文件後保存)。
方法二:直接在本地創建一個文件(手動寫入內容)。

2、修改request映射,映射到本地文件

右鍵該請求,選擇“Map Local”:

彈框中選擇本地文件,點OK:

3、重新發起該請求後,即返回了本地文件內容:

替換response爲遠端文件

同 “替換response爲本地文件” 類似。
入口爲:右鍵請求-》Map Remote,彈框中輸入另一個遠端請求。類似如下設置,會跳轉到image.baidu.com地址。

修改request、response (header)數據

可以通過使用斷點功能來篡改請求的數據或者返回的數據,達到模擬的效果,以測試任意app爲例,方法如下:

1、類似於mapping,我們可以針對接口右鍵選擇"BreakPoints",這樣這個接口就被加入到斷點狀態了

2、需要進一步修改斷點的屬性,可以在菜單欄"Proxy"–>"Breakpoints Settings"裏進行添加刪除或者修改,配置方式和mapping雷同,並且可以選擇這個斷點是在request還是response,還是兩者都要。

3、這個時候再刷新app界面,會直接跳轉到斷點模版,這個時候你可以在對應狀態情況下修改request或者response,然後點擊下方按鈕“Execute”。

跳轉到斷點界面,先點擊下方執行按鈕“Execute”。

如在請求 https://www.baidu.com/ 中修改request,添加aaa請求參數,則如下操作:

則實際請求變成了如下:

修改response跟request類似:

1、然後點開Edit Response界面,選擇JSON格式(或HTML),格式清晰,方便修改,直接在上面進行數據修改,改成你想要測試的數據,然後點擊執行按鈕

2、再次刷新app界面,然後app返回的是新改的數據,根據返回數據測試客戶端顯示是否正確。

完!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章