Charles 抓包

參考轉(zhuǎn)載:https://testerhome.com/topics/15491

一,簡(jiǎn)介

Charles 是一個(gè) HTTP 代理/ HTTP 監(jiān)視器/反向代理,使開(kāi)發(fā)人員能夠查看其機(jī)器和 Internet 之間的所有 HTTP 和 SSL / HTTPS 流量。 這包括請(qǐng)求,響應(yīng)和 HTTP 標(biāo)頭(包含 cookie 和緩存信息)。

二,下載

下載地址:https://www.charlesproxy.com/download/

三,安裝

1,從網(wǎng)站下載完軟件資源包之后,將其解壓出來(lái),雙擊將它打開(kāi)運(yùn)行,按提示進(jìn)行安裝即可

四,設(shè)置代理+安裝證書(shū)

  • 電腦:

(1)啟動(dòng) Charles 后,需要將 Charles 設(shè)置成系統(tǒng)代理,選擇菜單中的 “Proxy” –> “MacOS Proxy” 來(lái)將 Charles 設(shè)置成系統(tǒng)代理
(2)給電腦安裝CA證書(shū),進(jìn)入Charles的Help菜單中,點(diǎn)擊SSL Proxying-Install Charles Root Certificate,安裝好后信任此證書(shū)。之后通過(guò)瀏覽器請(qǐng)求的網(wǎng)址都會(huì)出現(xiàn)在這里。點(diǎn)擊某一個(gè)網(wǎng)址后會(huì)出現(xiàn)請(qǐng)求信息,點(diǎn)擊具體的請(qǐng)求后可看到Request和Response等信息。
(3)需要注意的是,Chrome 和 Firefox 瀏覽器默認(rèn)并不使用系統(tǒng)的代理服務(wù)器設(shè)置,所以在默認(rèn)情況下無(wú)法截取 Chrome 和 Firefox 瀏覽器的網(wǎng)絡(luò)通訊內(nèi)容。如果需要截取的話,在 Chrome 中設(shè)置成使用系統(tǒng)的代理服務(wù)器設(shè)置即可,或者直接將代理服務(wù)器設(shè)置成 127.0.0.1:8888 也可達(dá)到相同效果。

  • 手機(jī):

(1)首先需要將 Charles 的代理功能打開(kāi)。在 Charles 的菜單欄上選擇 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying”
(2)在要抓包的手機(jī)上點(diǎn)設(shè)置-網(wǎng)絡(luò)-配置代理,代理ip填寫(xiě)電腦當(dāng)前使用ip,端口號(hào):8888, 然后在手機(jī)瀏覽器里輸入http://charlesproxy.com/getssl,下載安裝charles證書(shū)。
(3)如果是蘋(píng)果手機(jī),需要在設(shè)置-通用-信息證書(shū),找到此證書(shū)點(diǎn)擊信任,設(shè)置完成后即可對(duì)手機(jī)抓包。

六,基本使用

1,過(guò)濾請(qǐng)求

2,使用本地?cái)?shù)據(jù) (Map Local)

這個(gè)功能主要是攔截服務(wù)端數(shù)據(jù),做本地修改.
注意:不需要 Map Local 的時(shí)候,在 Tools-Map Local 中把這個(gè)接口關(guān)閉.

(1) 復(fù)制響應(yīng)結(jié)果中 json 到存儲(chǔ)到本地文件中

(2) 在本地文件中修改內(nèi)容

(3) 點(diǎn)擊接口,右鍵選擇 Map Local

(4) Map To 選擇剛才修改過(guò)的 json 文件

2,接口重定向 (Map Rmote)

這個(gè)功能主要是把接口代理到其他環(huán)境上

  • 在 Map Rmote 中寫(xiě)上要代理接口

3,重寫(xiě) (Rewrite)

重寫(xiě)功能可以刪除、修改、增加,head、body、url、response 等參數(shù)

(1) 位置在 Tools->Rewrite 下,需要增加一個(gè)接口地址,增加一個(gè)重寫(xiě)規(guī)則

(2) 接著上實(shí)例,把 bid=3152 替換成 1937,此時(shí)完成了一次 body 數(shù)據(jù)重寫(xiě)

4,斷點(diǎn)

斷點(diǎn)功能主要修改 request 和 response 內(nèi)容,這個(gè)時(shí)候接口是在 Charles 代理層被攔截,還沒(méi)有實(shí)際到手機(jī)設(shè)備上.

(1) 選擇接口 - 勾選 BreakPoints-再次請(qǐng)求接口

(2) 修改 request 中 body 參數(shù) - 點(diǎn)擊 Execute-發(fā)送請(qǐng)求

(3) 修改 response 中 status code 參數(shù) - 點(diǎn)擊 Execute

Ps: 這個(gè)功能比較適合模擬接口 500、超時(shí),客戶端接收 response 是有超時(shí)時(shí)間的,如果修改數(shù)據(jù)的時(shí)間太久,客戶端會(huì)展示錯(cuò)誤頁(yè)面,那么做斷點(diǎn)調(diào)試就沒(méi)有意義了.

5,模擬發(fā)送請(qǐng)求

(1) 選擇接口右鍵選擇 Compose

(2) 修改數(shù)據(jù),點(diǎn)擊 Execute 按鈕發(fā)送請(qǐng)求

6,重發(fā)請(qǐng)求 (Repeat)

(1) 接口右鍵選擇-Repeat,表示重新發(fā)送一次請(qǐng)求

(2) 接口右鍵選擇-Repeat Advanced,填寫(xiě)發(fā)送的次數(shù),循環(huán)發(fā)送多次請(qǐng)求
* Iterations 表示次數(shù)
* Concurrency 表示并發(fā)線程數(shù)

7,模式弱網(wǎng)

(1) Proxy-Throttle Settings

(2) 勾選 Enable Throttling

(3) Only for selected 表示僅選擇的域名做弱網(wǎng)

(4) Throttle preset 表示要模擬的網(wǎng)速,可以改上行和下行帶寬,還有丟包率

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容