Charles
扒磁,抓包利器庆揪,不僅能抓HTTP
,還能抓HTTPS
妨托,當然并不是所有的HTTPS
都能抓到缸榛,簡單試了一下,HTTPS中簡書的數(shù)據(jù)抓不到兰伤,開源中國的數(shù)據(jù)是可以的内颗,下面就針對Mac
環(huán)境下對iPhone(iOS 11)
上的數(shù)據(jù)抓取簡單介紹一下Charles
的使用。
本文主要涉及以下幾個步驟:
- 下載
Charles
- 配置
Charles
- 手機設置代理
- 手機端安裝證書并信任
-
Charles
針對某個域名設置HTTPS
配置 - 重新發(fā)送請求敦腔,拿到數(shù)據(jù)
- 抓取某個域名下的數(shù)據(jù)
- 模擬慢網(wǎng)
- 網(wǎng)絡請求斷點
- 網(wǎng)絡請求重發(fā)
- 其它
下載
首先下載 Charles
(土豪可以直接購買均澳,小白就下載個破解版吧),給個百度云鏈接: 密碼:fitm
符衔,版本為4.1.4
找前,直接安裝就行,已破解判族。
配置
安裝后會提示是否允許Charles
進行控制躺盛,點擊允許,具體界面就不貼了(已經(jīng)安裝過形帮,就提示一次)槽惫。文字都是抽象的,看圖說話:
- 打開
Charles
沃缘,在Proxy
中分別針對Proxy Setting
和SSL Proxying Settings
進行設置:
1躯枢、設置代理.png - 端口號可以為
8888
、9999
等等槐臀,手機代理設置時要與此端口保持一致
- 這個地方可以添加需要攔截的
HTTPS
相應的域名,端口一般都是443
水慨,如果怕填錯或者不準確得糜,可以按圖14
進行設置
3敬扛、HTTPS設置.png - 這個是在
Charles
中的help
進行設置的,圖少截了一部分朝抖,安裝證書并進行信任
4啥箭、Mac安裝證書.png
5、檢查證書是否信任.png
6治宣、信任證書.png
手機設置代理
- 保證手機與電腦連接的是同一個Wifi急侥,手機設置代理:
手機端安裝證書并信任
-
然后
Safari
打開手機證書安裝地址:http:\charlesproxy.com/getssl/,會出現(xiàn)如下界面绊茧,直接點擊安裝铝宵,注意:手機打開這個地址的時候要保證代理已經(jīng)設置完成,否則證書下載不了
11华畏、安裝手機證書.png -
下載完成后對證書進行信任鹏秋,這個地方需要注意的是之前是在
通用-->描述文件與設備管理中
對證書進行信任,現(xiàn)在又增加了一項亡笑,在關于本機-->證書信任設置
中也要對證書進行設置侣夷,否則無法抓取HTTPS
的內(nèi)容
12、設備管理進行信任.jpeg
13仑乌、關于本機進行信任.jpeg
針對域名進行SSL代理設置
-
回到Charles惜纸,對要請求的地址進行SSL設置(如果第2步?jīng)]做的話,已做過請忽略)
14绝骚、允許SLL代理.png -
重新請求數(shù)據(jù)耐版,就能抓取包內(nèi)容
15、抓取數(shù)據(jù).png
抓取某個域名下的數(shù)據(jù)
現(xiàn)在數(shù)據(jù)是抓取到了压汪,但是我們發(fā)現(xiàn)一個問題粪牲,當你打開一個app的時候,可能會進行很多不相干的請求止剖,比如用的一些第三方腺阳,或者蘋果自己的或者其他的一些請求,這些請求都不是我們所需要的穿香,但他們都擠在了左側這個本來就不大的列表中亭引,顯然我們只需要特定域名下的數(shù)據(jù),那么我們就需要過濾一下皮获。在Charles
的設置中有一個Recording
選項焙蚓,用于記錄攔截到的所有的請求,默認是將所有攔截到的請求都記錄在了左側列表中,我們可以設置進行過濾购公,只要我們特定的請求:
在
include
中添加Add
萌京,在跳出的界面上填上相應的Host、Port宏浩,如果有需要還可以添加Path
知残、Query
,圖為我添加的開源中國
的地址這是我過濾后的列表界面比庄,可以看到只有開源中國的數(shù)據(jù)求妹,其他的就不顯示了:
模擬慢網(wǎng)
還是看圖吧:
想要多慢,自己調(diào)吧佳窑。
斷點
Charles
還有一個很強大的功能扒最,就是斷點調(diào)試,可以在網(wǎng)絡請求發(fā)出前和返回后進行攔截华嘹,查看、編輯發(fā)出請求和返回的參數(shù)法竞,這樣與后臺調(diào)試時就特別方面耙厚,傳遞的參數(shù)有什么問題,或者后臺返回的數(shù)據(jù)有問題岔霸,一清二楚薛躬,誰也賴不了賬:
-
首先對想要攔截的地址先發(fā)一次請求,然后在該地址上右鍵呆细,選則
Breakpoints
型宝,然后清空左側列表,重新發(fā)送請求絮爷,該請求過來時就能攔截到了:
選中相應地址.png -
Edit Request
對請求進行編輯
攔截請求.png
- 修改請求中操作的空間就很大趴酣,這是很強大的地方,可以修改坑夯、增加參數(shù)岖寞,修改地址、
header
等柜蜈,修改完成后點擊Excute
執(zhí)行:
修改請求.png
當網(wǎng)絡返回數(shù)據(jù)后也是一樣的道理仗谆,可以對返回的數(shù)據(jù)進行修改,不再贅述淑履。
網(wǎng)絡請求重發(fā)
我們在和后臺調(diào)試接口的時候隶垮,很多情況下都會需要調(diào)用同一個接口多次,如果我們在手機界面上去觸發(fā)秘噪,特別是層級較深時會浪費很多時間狸吞,效率很低,但Charles
強大的網(wǎng)絡重發(fā)就幫我們解決了這個問題,在需要發(fā)送的地址上右鍵捷绒,點擊Repeat
就可以直接發(fā)送請求瑰排,而且參數(shù)都是一樣的。
其它
再寫兩個功能暖侨,請求重定向和內(nèi)容替換:
- 重定向:可以重定向網(wǎng)絡請求
- 內(nèi)容替換:可以替換后臺返回的數(shù)據(jù)椭住,這樣可以修改后臺返回的數(shù)據(jù)來達到測試我們
app
的異常處理等,不細說字逗,有需要的可以取研究:
Charles
是一個很強大的工具京郑,寫了這么多,也只是冰山一角葫掉,且學且珍惜吧些举。
PS:這個圖確實有點多昂...