Charles是目前最強(qiáng)大的http調(diào)試工具,在界面和功能上遠(yuǎn)勝于Fiddler,安裝之前請(qǐng)確保已經(jīng)安裝了JDK,之后按照提示安裝。注意:未注冊(cè)版本,每隔30分鐘會(huì)自動(dòng)退出。同時(shí)是全平臺(tái)支持,這么好用的軟件可惜就是收費(fèi)的,網(wǎng)上是有破解版的Charles,學(xué)習(xí)交流可下載。
安裝
首先需要下載Java的運(yùn)行環(huán)境支持。裝好java環(huán)境后,可以直接去百度搜索并下載charles的破解版,下載到破解版之后,里面一般會(huì)有注冊(cè)的jar文件,然后注冊(cè)后就可以永久使用了(ps:不注冊(cè)的話,每次使用30分鐘,工具就會(huì)自動(dòng)關(guān)閉),下載鏈接中是 V3.6版(http://www.innovatechautomation.com/mac/121708.html),最新版本是V3.8.3沒(méi)有破解包,所以不要升級(jí)到最新版。
配置與基本功能
對(duì)于Mac系統(tǒng)而言,打開charles之后,默認(rèn)就已經(jīng)對(duì)系統(tǒng)進(jìn)行了代理,如果沒(méi)有,則需要在菜單欄的Proxy上勾選上Mac OS X Proxy。
以打開365日歷主頁(yè)為例:
charles對(duì)于抓取的包可以進(jìn)行保存,等下次要分析時(shí),在打開。
Filter可以對(duì)請(qǐng)求進(jìn)行過(guò)濾,并且支持通配符,比如只想查看以包含365rili且以.do為結(jié)尾的請(qǐng)求,可以在Filter中設(shè)置365rili.*.do。
Overview可以更加詳細(xì)的查看這次請(qǐng)求的詳細(xì)內(nèi)容,例如耗時(shí)詳細(xì)列車了請(qǐng)求開始時(shí)間、結(jié)束時(shí)間,響應(yīng)開始時(shí)間、結(jié)束時(shí)間,總耗時(shí)、DNS耗時(shí)、網(wǎng)絡(luò)延時(shí)等。
對(duì)于Size也詳細(xì)列出了請(qǐng)求頭大小、響應(yīng)頭大小、壓縮比例等內(nèi)容。
如果想查看更詳細(xì)的請(qǐng)求信息,比如Header、cookie、form表單等可以點(diǎn)擊Request,類似查看詳細(xì)的響應(yīng)選擇Reponse。
除了對(duì)于PC端進(jìn)行代理之外,還可以抓取客戶端,在Proxy->Proxy Settings中設(shè)置代理端口號(hào):
在手機(jī)端,WLAN設(shè)置中找到連接的wifi,設(shè)置代理:
把代理模式設(shè)置為手動(dòng),設(shè)置主機(jī)名為Charles所在機(jī)器的ip,端口號(hào)為Charles配置的代理端口。這樣手機(jī)客戶端的所有http請(qǐng)求,都會(huì)被charles代理?梢苑奖愕牟榭纯蛻舳说膆ttp請(qǐng)求。
3. 高級(jí)功能
3.1 重放與編輯
點(diǎn)擊一個(gè)請(qǐng)求,雙值點(diǎn)擊觸摸板,可以對(duì)該請(qǐng)求進(jìn)行復(fù)制、保存、重放和編輯操作。
Repeat Advanced高級(jí)重放功能可以作為簡(jiǎn)單的性能測(cè)試:
可以設(shè)置重放次數(shù)和并發(fā)數(shù)。
Edit:編輯修改功能,可以編輯修改任意請(qǐng)求信息,比如表單信息、cookie等,修改完畢后點(diǎn)Execute就可以發(fā)送一個(gè)修改后的請(qǐng)求數(shù)據(jù)包。
顯示模式
charles抓包的顯示,支持兩種模式,Structure和Sequence。
(1) Structure形式如下圖 優(yōu)點(diǎn):可以很清晰的看到請(qǐng)求的數(shù)據(jù)結(jié)構(gòu),而且是以域名劃分請(qǐng)求信息的,可以很清晰的去分析和處理數(shù)據(jù)。
(2) Sequence形式如下圖 優(yōu)點(diǎn):可以看到全部請(qǐng)求,這里的結(jié)果以數(shù)據(jù)請(qǐng)求的順序來(lái)顯示,最新的請(qǐng)求顯示在最下面
綜上,兩種形式各有千秋,structure 適合對(duì)單一系列的訪問(wèn)請(qǐng)求從宏觀上進(jìn)行把握,可以快速定位。sequence 適合精確定位內(nèi)容,因?yàn)槊織lsequence 都有size,status等屬性信息,方便快速定位這條結(jié)果的價(jià)值,樓主一般兩者一起使用。
PC端抓包
Charles支持抓去http、https協(xié)議的請(qǐng)求,不支持socket。
charles會(huì)自動(dòng)配置瀏覽器和工具的代理設(shè)置,所以說(shuō)打開工具直接就已經(jīng)是抓包狀態(tài)了。
下圖顯示的是Charles的主界面:
上圖中的幾個(gè)小圖標(biāo)是最常用的幾個(gè)功能。
1 垃圾桶圖標(biāo),功能是clear,清理掉所有請(qǐng)求顯示信息。
.
2. 望遠(yuǎn)鏡圖標(biāo),功能是搜索關(guān)鍵字,也可以使用ctrl+f實(shí)現(xiàn),可以設(shè)置搜索的范圍。
.
3 圓圈中間紅點(diǎn)的圖標(biāo),功能是領(lǐng)抓去的數(shù)據(jù)顯示或者不顯示的設(shè)置。 這個(gè)本人認(rèn)為是charles工具很方便的一個(gè),一般都使其為不顯示抓取狀態(tài),只有當(dāng)自己測(cè)試的時(shí)候的前后,在令其為抓取并顯示狀態(tài)。這樣可以快準(zhǔn)狠的獲取到相關(guān)自己想要的信息,而不必在一堆數(shù)據(jù)請(qǐng)求中去尋找。
4 那個(gè)小鉛筆是編輯修改功能,可以對(duì)下圖中的請(qǐng)求信息進(jìn)行修改,修改完畢后點(diǎn)擊Execute就可以發(fā)送一個(gè)修改后的請(qǐng)求數(shù)據(jù)包。如下圖,博主把cookies刪掉了
5 抓取的數(shù)據(jù)包的請(qǐng)求地址的url信息顯示。一般也可以直接在條目上右鍵copy url 在瀏覽器中查看。
6 抓取的數(shù)據(jù)包的請(qǐng)求內(nèi)容的信息顯示。
7 返回?cái)?shù)據(jù)內(nèi)容信息的顯示。
解析后的JSON數(shù)據(jù):
其中5、6、7中都有各種形式的數(shù)據(jù)顯示形式,其中raw是原始數(shù)據(jù)包的狀態(tài)。
5.移動(dòng)應(yīng)用抓包
這是博主應(yīng)用最多的地方,除了手機(jī)端需要對(duì)http proxy 進(jìn)行下設(shè)置,其他使用和PC端抓包基本類似,具體步驟如下:
手下手機(jī)和電腦必須在一個(gè)局域網(wǎng)內(nèi),不一定非要是一個(gè)ip段,只要是同一個(gè)路由器下就可以了,比如電腦連接的有線網(wǎng)ip為192.168.16.12,然后手機(jī)鏈接的wifi ip為192.168.1.103,但是這個(gè)有線網(wǎng)和無(wú)線網(wǎng)的最終都是來(lái)自于一個(gè)外部ip,這樣是可以的。
.
具體配置,電腦端不用做任何配置,但是需要把防火墻關(guān)掉(這點(diǎn)很重要)!
charles需要設(shè)置下代理端口:進(jìn)入Proxy,點(diǎn)擊Proxy Setting, 端口設(shè)置為8888(一般默認(rèn)為這個(gè))
3 手機(jī)端配置
首先進(jìn)入終端,執(zhí)行 - ifconfig命令查看自己電腦的ip地址,然后在手機(jī)端的wifi代理設(shè)置那里去進(jìn)行相關(guān)的配置設(shè)置。如下圖,在手機(jī)wifi 的Http Proxy -> Manual進(jìn)行設(shè)置,server與電腦ip相同,端口同Charles設(shè)置:
4 好了,這樣就配置完成就大功告成了,打開百度外賣就可以愉快的進(jìn)行抓包了。
5.注意,使用完Charles之后,要點(diǎn)擊off,關(guān)閉手機(jī)端設(shè)置,要不然,手機(jī)會(huì)出現(xiàn)訪問(wèn)異常的情況。
6.其他技能
相信上面介紹的那些你已經(jīng)學(xué)會(huì)了吧,下面再說(shuō)說(shuō)charles的一些其他常用的功能
選擇請(qǐng)求后,右鍵可以看到一些常用的功能,這里說(shuō)說(shuō)Repeat 就是重復(fù)發(fā)包一次。 然后Advanced Repeat就是重復(fù)發(fā)包多次,這個(gè)功能用來(lái)測(cè)試短信轟炸漏洞很方便。
還有比如說(shuō)修改referer測(cè)試CSRF漏洞,修改form內(nèi)容測(cè)試XSS,修改關(guān)鍵的參數(shù)測(cè)試越權(quán),修改url、form、cookie等信息測(cè)試注入等,都非常方便。