1. 前言:
Charles是一款抓包修改工具,相比起burp,charles具有界面簡單直觀,易於上手,數據請求控制容易,修改簡單,抓取數據的開始暫停方便等等優勢!作爲程序員, 這個工具的使用還是必須, 廢話不多說, 來點實在的, 下面來詳細介紹下這款強大好用的抓包工具的使用
2. 下載安裝
首先需要下載java的運行環境支持(一般用burp的人肯定也都有裝java環境,下載鏈接:鏈接: http://pan.baidu.com/s/1c2wRVHI 密碼: rkcu, 這個是昨天剛從甲骨文官網下載的),裝好java環境後,下載Charlet(鏈接: http://pan.baidu.com/s/1c14dr0k 密碼: 9cjv 本軟件僅供學習使用不要用作其他商業目的,不要亂傳播,要不然樓主被抓了以後沒法分享了)
3. 電腦端抓包
下面是pc端的抓包使用情況 Charles支持抓去http、https協議的請求,不支持socket。
然後charles會自動配置瀏覽器和工具的代理設置,所以說打開工具直接就已經是抓包狀態了。 這裏打開百度抓包下,工具界面和相關基礎功能如下圖所示:
上圖中的7個位置是最常用的幾個功能。
1. 那個垃圾桶圖標,功能是clear,清理掉所有請求顯示信息。
2. 那個望遠鏡圖標,功能是搜索關鍵字,也可以使用ctrl+f實現,可以設置搜索的範圍。
3. 圓圈中間紅點的圖標,功能是領抓去的數據顯示或者不顯示的設置。 這個本人認爲是charles工具很方便的一個兩點,一般都使其爲不顯示抓去狀態,只有當自己測試的時候的前後,在令其爲抓取並顯示狀態。這樣可以快準狠的獲取到相關自己想要的信息,而不必在一堆數據請求中去尋找。
4. 編輯修改功能,可以編輯修改任意請求信息,修改完畢後點擊Compose就可以發送一個修改後的請求數據包。
5. 抓取的數據包的請求地址的url信息顯示。
6. 抓取的數據包的請求內容的信息顯示,post請求可以顯示form形式,直觀明瞭。
7. 返回數據內容信息的顯示.
其中5、6、7中都有各種形式的數據顯示形式,其中raw是原始數據包的狀態, 更多功能可以去幫助文件中查看英文版教程!
4. 顯示模式
charles抓包的顯示,支持兩種模式,Structure和Sequence,其優點分別如下。
Structure形式如下圖 優點:可以很清晰的看到請求的數據結構,而且是以域名劃分請求信息的,可以很清晰的去分析和處理數據。
Sequence形式如下圖 優點:可以很清晰的看到全部請求,不用一層一層的去點開,這裏是以數據請求的順序去執行的,也就是說那個請求快就在前面顯示。
具體要說兩種形式哪個更好,這個就是見仁見智了。個人喜歡第一種,左側列表欄比較習慣!
5. 移動端抓包
這裏相比其他抓包軟件來說要簡單的多了,具體步驟如下:
1. Charles上的設置
要截取iPhone上的網絡請求,我們首先需要將Charles的代理功能打開。在Charles的菜單欄上選擇“Proxy”->“Proxy Settings”,填入代理端口8888,並且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的設置。如下圖所示:
我們需要獲取Charles運行所在電腦的IP地址,打開Terminal,輸入ifconfig en0, 即可獲得該電腦的IP
2. iPhone上的設置
在iPhone的 “設置”->“無線局域網“中,可以看到當前連接的wifi名,通過點擊右邊的詳情鍵,可以看到當前連接上的wifi的詳細信息,包括IP地址,子網掩碼等信息。在其最底部有“HTTP代理”一項,我們將其切換成手動,然後填上Charles運行所在的電腦的IP,以及端口號8888,如下圖所示:
設置好之後,我們打開iPhone上的任意打開網絡鏈接, 盡情地玩耍,哈哈!(然後你會發現很多app的密碼和賬戶一覽無餘,so,以後註冊小公司網站時密碼一定要和自己的qq, 支付寶等等密碼區分開,要不然小公司服務器被攻破之後,後果可想而知)
注意:手機要與電腦在同一個WiFi下哦!這個很重要
6. 其他常用功能
相信上面介紹的那些你已經學會了吧,下面再說說charles的一些其他常用的功能
選擇請求後,右鍵可以看到一些常用的功能,這裏說說Repeat 就是重複發包一次。 然後Advanced Repeat就是重複發包多次,這個功能用來測試短信轟炸漏洞很方便。
還有比如說修改referer測試CSRF漏洞,修改form內容測試XSS,修改關鍵的參數測試越權,修改url、form、cookie等信息測試注入等,都非常方便。
好了,這款工具的介紹就到這裏了!
7. 問題彙總
Charles是一款很好用的抓包修改工具,但是如果你不是很熟悉這個工具的話,肯定會遇到各種感覺很莫名其妙的狀況,這裏就來幫你一一解答。
1. 爲什麼下載了不能用啊?打不開啊。
因爲charles是需要java環境才能運行的,需要先安裝java環境纔可以。
2. 爲什麼我用着用着就自動關閉了?大概30分鐘就會關閉一次。
因爲charles如果沒有註冊的話,每次打開後就只能喲個30分鐘,然後就會自動關閉,所以最好在使用前先按照說明去進行工具的註冊操作。
3. 爲什麼用了charles後,我就上不了網頁了,但是qq可以。
因爲如果charles是非正常狀態下關閉的話,那麼瀏覽器的代理就不會被自動取消,所以會導致這種情況。
解決辦法:
第一種:直接打開charles,然後再正常關閉即可。 第二種:將瀏覽器代理位置的勾選去掉。
4. 爲什麼我用charles不能抓到socket和https的數據呢?
首先,charles是不支持抓去socket數據的。 然後,如果抓不到https的數據的話,請查看你是不是沒有勾選ssl功能。 Proxy - Proxy Settings - SSL 設置
5. 爲什麼我用charles抓取手機APP,什麼都是配置正確的,但是卻抓不到數據。
首先,請確保電腦和手機是在同一個局域網下,這個很重要。然後確保手機的代理是否設置正確!
6. 抓包後發現form中有些數據顯示是亂碼怎麼辦?
首先,請在Raw模式下查看,Raw模式顯示的是原始數據包,一般不會因爲編碼問題導致顯示爲亂碼。
其次,解決中文亂碼
Response中文亂碼:在Info.plist 中 的vmoption 添加-Dfile.encoding=UTF-8 ( info.plist路徑: 應用程序->Charles.app->顯示包內容->Info.plist)
7. 我用charles抓手機app的數據,但是同時也會抓去到電腦端的數據,可以設置嗎?
可以,設置位置在Proxy - MacOS Proxy ,勾選表示接收電腦的數據抓包,如果只想抓去APP的數據請求,可以不勾選此功能。
8. 想要複製粘貼某些數據的話,怎麼辦,右鍵沒有相應功能啊?
請直接使用Command +C 和 Command+V 即可。