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