
01、charles簡介
charles是一款非常優秀的抓包工具,全平臺支持,在mac,windows,linux上都可以使用,既可以抓取web端的包,也可以抓app端的包,
charles主要的功能包括如下幾點:
-
截取 Http 和 Https 網路封包,
-
支持重發網路請求,方便后端除錯,
-
支持修改網路請求引數,
-
支持網路請求的截獲并動態修改,
-
支持模擬慢速網路
代理服務器的作業原理如下所示:

客戶端發起請求,請求通過charles轉發給服務器,服務器回傳回應,回應通過charles轉發給客戶端,
charles所起的作用就相當于信使,把資訊從A傳遞給B,并且把回信從B傳遞給A,正因為他這個信使的作業,所以他對資訊的內容了如指掌(不管是原信還是回信),正因為如此,charles也就可以篡改資訊的內容,即篡改請求和回應,
02、安裝
mac電腦參考這個連接進行安裝和破解:https://www.jianshu.com/p/82f63277d50f
windows電腦下載網盤里的軟體進行安裝和破解
鏈接:https://pan.baidu.com/s/1AkDV5VAbVWw_uWTBW3biyw
提取碼:emj4
03、基本設定
- 開啟代理(默認就是開啟的)

- https設定及安裝證書
0、先設定代理

1、安裝證書




2、設定ssl代理
單擊選單項“代理”->“SSL 代理設定”

單擊【添加】,在彈出的“編輯位置”視窗中,主機、埠文本框均輸入星號,如下截圖所示,單擊“編輯位置”視窗中的【確定】

然后在“SSL 代理設定”視窗中,單擊【確定】
3、chrome瀏覽器的單獨設定
對于chrome瀏覽器上的https抓包需要按照如下操作進行
先保存charles證書,保存時選擇二進制


打開chrome瀏覽器的設定界面,搜索證書,進入證書管理界面






04、手機端抓包配置
- 手機連接代理設定
首先確保手機和charles所在的電腦在同一個局域網下,然后設定手機的代碼連接,長按手機的wifi,打開修改網路
其中的ip是charles所在電腦的ip,埠是charles代理設定那里看到的埠號8888
第一次連接代理時,charles會彈出確認框,記得點允許

-
手機瀏覽器輸入chls.pro/ssl會提示下載證書,下載并安裝即可
-
ios手機還需要在設定 - 通用 - 關于本機 - 證書信任設定里信任證書
05、功能圖示

從左到右依次是
-
清除當前會話
-
停止記錄
-
開始限流/停止限流
-
開始斷點/停止斷點
-
根據所寫內容撰寫新請求
-
重發選定請求
-
工具
-
設定
06、抓包視圖
charles抓包的請求資訊可以以兩種方式展示,一種是結構化展示,一種是序列化展示
1、結構

結構化展示方式,會以某個網址作為管理根本,然后按照各個請求的路徑層級進行分類展示,如上圖所示,我們最終要的純介面
請求實際上是api下的login2
2、序列

序列是按照抓到的請求逐個排列的,一行就是一個,每一列都代表著不同的含義
3、請求資訊查看

在請求發起資訊中的一些標簽含義:
-
標頭:請求header資訊
-
文本:請求引數的文本形式
-
十六進制:請求引數的十六進制形式
-
表單:請求引數的表單形式
-
原始資料:請求發起的所有資訊,在這里可以看到請求發起的所有資訊
在請求回應資訊中的一些標簽含義:
-
標頭:服務器回應的header資訊
-
文本:回應內容的文本形式
-
十六進制:回應內容的十六進制形式
-
JavaScript:回應內容的js形式
-
JSON:回應內容的JSON格式形式
-
JSON文本:回應內容的JSON格式文本形式
-
原始資料:服務器回應資訊的所有內容都在這里
07、請求過濾
通常情況下我們可能會抓包非常多的請求,那么為了方便我們查找自己的目標請求,可以針對性的設定一些過濾條件
- 快捷過濾方式

- 多條件過濾
上方工具列的代理—記錄設定—包括—添加

08、介面請求除錯
1、選中要除錯的請求,右鍵–>撰寫

2、修改引數并執行


這種方式也可以理解為篡改請求報文,再次發起請求的方式
09、斷點
斷點的意思就是請求發起或者回應時會被暫停,使用者可以根據自己的需求編輯篡改請求報文或者回應報文,以達到不可告人的目的
- 斷點設定
在上方選單欄代理–>斷點設定,點開后添加,添加后當捕獲的請求命中設定的各項資訊,就會被暫停

- 執行請求,篡改報文
要么在頁面上重新訪問,要么再charles里右鍵請求點擊重發,都可以進入編輯報文的界面


10、介面請求映射
在斷點中篡改報文并不是很方便,每次都得改,那么為了一勞永逸的修改某個介面的回應資訊,可以通過介面映射的方式,將指定介面的回應資訊指向我期望的本地檔案或者遠程介面
- 本地映射
本地映射的意思就是將某個介面的回應內容指向本地檔案,因此我們先創建一個本地檔案,針對碼同學全堆疊介面專案的
登錄介面做本地映射,創建一個txt檔案,寫入如下內容,這內容里改了回應資訊中的code是500:
{"code":"500","message":"success","data":"04cec0658e9a4e55906bdd37416e2841"}
設定本地映射:在上方選單欄工具–>本地映射

然后重發(回放)目標介面,查看回應

- 遠程映射
先來看一個場景
“app在線上出現了問題,你想測下在測驗環境是否有問題,其實就是你想用線上的包發請求時不要發線上,發到測驗環境,或者 有個app需要測驗,測驗環境已經測驗完成,需要到灰度環境測驗,但是,現在沒有灰度環境對應的app,那怎么辦”
有兩種方法能解決:
①一種是讓開發給你重新打包,把里面請求線上的地址換成測驗的地址
②一種是在charles里做域名映射 如果開發忙沒有時間給你打包,那我們就可以直接在charles里域名映射
設定遠程映射:在上方選單欄工具–>遠程映射

訪問原域名都會去訪問目標域名了
11、重寫
重寫功能適合對某一類網路請求進行一些正則替換,以達到修改結果的目的,
可以重寫介面所有元素的內容:header、host、url、path、query param、response status、body.
比如我要模擬回應狀態碼的例外情況:在上方選單欄工具–>重寫
1、添加一個規則

2、添加匹配請求

3、添加重寫規則

4、確定以后,在頁面訪問,登錄介面回應狀態碼會被改成500

5、除了針對回應狀態碼,其他介面的資訊也可以被重寫,可以在重寫規則那里進行選擇


最后: 可以關注公眾號:傷心的辣條 ! 進去有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測驗行業常見知識,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!推薦軟體測驗交流學習群:914172719 里面會分享一些資深架構師錄制的視頻錄像
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299933.html
標籤:其他
上一篇:如何在Linux中安裝和使用Silver Searcher(程式員的代碼搜索工具)
下一篇:【程式員面試寶典】鏈表分割
