一谅辣、抓包概述
1. 抓包概念
抓包是將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)柏副、編輯蚣录、轉(zhuǎn)存等操作,也用來檢查網(wǎng)絡(luò)安全等荔泳。下面小編就介紹幾種抓包軟件虐杯。
2. 常見抓包工具
Charles玛歌、fiddler、wireShark
軟件名稱簡(jiǎn)介獨(dú)? 立運(yùn)行支持移動(dòng)設(shè)備是否收費(fèi)
Fiddler免費(fèi)的HTTP查看工具厦幅,系統(tǒng)代理沾鳄,工作在應(yīng)用層是是否
CharlesHTTP代理、HTTP監(jiān)控确憨、HTTP反代理、查看HTTP通訊瓤的、查看工作信息工具是是收費(fèi)版/免費(fèi)版
Wireshark半免費(fèi)休弃,網(wǎng)絡(luò)抓包、監(jiān)聽網(wǎng)卡圈膏,工作在網(wǎng)絡(luò)接口層是否否
HttpWatch集成到IE塔猾、Chrome中的網(wǎng)頁數(shù)據(jù)分析工具否否基礎(chǔ)版/專業(yè)版
BurpSuiteHttp代理。是用于攻擊web應(yīng)用程序的集成平臺(tái)稽坤,包含了許多工具:抓包丈甸、掃漏糯俗、爆破等。黑客必備工具之一是是是
測(cè)試為什么要學(xué)習(xí)Charles抓包睦擂?
能夠使用Charles來分析前后端問題
能夠使用Charles模擬弱網(wǎng)測(cè)試環(huán)境
能夠使用Charles的斷點(diǎn)構(gòu)建異常的測(cè)試場(chǎng)景
一得湘、Charles簡(jiǎn)介
1. 什么是Charles
Charles中文名字青花瓷,是一款Http代理服務(wù)器和Http監(jiān)視器顿仇,當(dāng)移動(dòng)端在無線網(wǎng)連接中按要求設(shè)置好代理服務(wù)器淘正,使所有對(duì)網(wǎng)絡(luò)的請(qǐng)求都經(jīng)過Charles客戶端來轉(zhuǎn)發(fā)時(shí),Charles可以監(jiān)控這個(gè)客戶端各個(gè)程序所有連接互聯(lián)網(wǎng)的Http通信臼闻。
特點(diǎn):跨平臺(tái)鸿吆、半免費(fèi)
免費(fèi)版本:一是啟動(dòng)等待十秒才能啟動(dòng),二是半小時(shí)重啟一次
2. Charles工作原理
2.1 原理
截獲真實(shí)客戶端的HTTPS請(qǐng)求黎泣,偽裝客戶端向真實(shí)服務(wù)端發(fā)送HTTPS請(qǐng)求
接受真實(shí)服務(wù)器響應(yīng)抒倚,用Charles自己的證書偽裝服務(wù)端向真實(shí)客戶端發(fā)送數(shù)據(jù)內(nèi)容
2.2 原理圖
Charles原理圖.png
2.3 原理案例
租房子? 房客? ? 中介? 房東
前置步驟:
(1)需要運(yùn)行Charles并配置代理
(2)在客戶端上面需要配置代理
步驟:
(1)有客戶端發(fā)送請(qǐng)求
(2)Charles接受再發(fā)送給服務(wù)端
(3)服務(wù)端返回請(qǐng)求結(jié)果給Charles
(4)由Charles轉(zhuǎn)發(fā)給客戶端
3. Charles主要功能
支持HTTP/HTTPS代理
支持流量控制
支持接口并發(fā)請(qǐng)求
支持重發(fā)網(wǎng)絡(luò)請(qǐng)求频敛,方便后端調(diào)試
支持?jǐn)帱c(diǎn)調(diào)試
支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)
支持網(wǎng)絡(luò)請(qǐng)求的截獲并動(dòng)態(tài)修改
支持模擬慢速網(wǎng)絡(luò)
4. Charles優(yōu)點(diǎn)(相對(duì)Fiddler)
Charles能夠支持Linux着降、macOS任洞,fiddler不支持
Charles支持按域名和按接口查看報(bào)文,簡(jiǎn)潔明了
Charles支持反向代理盅弛,fiddler不支持
Charles網(wǎng)絡(luò)限速可選擇網(wǎng)絡(luò)類型见秽,選擇3G解取、4G、5G等
Charles可以解析AMF協(xié)議伦忠,一般用不到
二 昆码、安裝與配置
1. Charles安裝
官網(wǎng)下載:官網(wǎng)
image.png
雙擊,下一步即可
image.png
2. Charles組件介紹
image.png
image.png
校驗(yàn)是否符合w3c標(biāo)準(zhǔn)宦赠。
image.png
請(qǐng)求數(shù)據(jù)欄.png
3. Charles設(shè)置
3.1 代理設(shè)置
image.png
image.png
3.2 Charles訪問控制
image.png
image.png
4. 客戶端設(shè)置
4.1 Windows代理設(shè)置
image.png
4.2 Android手機(jī)代理設(shè)置(見3.1)
三桅滋、實(shí)戰(zhàn)
3.1 抓取移動(dòng)設(shè)備發(fā)送的Http請(qǐng)求
先將移動(dòng)設(shè)備連接到Charles客戶端丐谋。首先在電腦中輸入cmd打開命令行窗口,輸入ipconfig查看本機(jī)連接無線網(wǎng)絡(luò)的IP地址,這個(gè)地址作為移動(dòng)設(shè)備連接Charles客戶端的代理地址
image.png
打開Charles客戶端找岖,點(diǎn)擊Proxy->Proxy Settings菜單许布,可以設(shè)置移動(dòng)設(shè)備連接到Charles的端口(8888),這樣移動(dòng)設(shè)備代理配置需要的ip地址和端口號(hào)都有了袁余。
image.png
打開手機(jī)wifi颖榜,設(shè)置所連接的wifi的代理網(wǎng)絡(luò)掩完;wifi代理設(shè)置為手動(dòng),代理的服務(wù)器ip填寫上一步驟中查看到的電腦ip题翰,端口填寫上一步驟提到的charles的服務(wù)端口:
image.png
image.png
注意:
①移動(dòng)設(shè)備配置之后,第一次通過手機(jī)訪問手機(jī)中的發(fā)送請(qǐng)求時(shí)沼填,Charles會(huì)彈出提示框岩饼,提示有設(shè)備嘗試連接到Charles籍茧,是否允許寞冯,如果不允許的話俭茧,手機(jī)發(fā)送請(qǐng)求失敗母债,點(diǎn)擊Allow允許毡们,這樣這個(gè)設(shè)備的IP地址就會(huì)添加到允許列表中,如果錯(cuò)誤點(diǎn)擊了Deny可以重啟Charles會(huì)再此提示奴迅,或者通過Proxy->Access Control Settings手動(dòng)添加地址脖隶,如果不想每個(gè)設(shè)備連接Charles都要點(diǎn)擊允許的話产阱,可以添加0.0.0.0/0允許所有設(shè)備連接到Charles。
②手機(jī)與電腦必須連接同一個(gè)WiFi
③不要勾選Proxy → SSL Proxying setting 中的Enable SSL Proxying
④Charles是通過將自己設(shè)置成代理服務(wù)器來完成抓包的庄敛,勾選系統(tǒng)代理后藻烤,本地系統(tǒng)(如果通過瀏覽器發(fā)送請(qǐng)求)發(fā)送出去的請(qǐng)求都能被截取下來怖亭。因此,如果想只抓取手機(jī)APP發(fā)送的請(qǐng)求的話倾芝,可以不勾選WindowsProxy選項(xiàng)蛀醉,這樣在測(cè)試時(shí)就不會(huì)被本機(jī)Http請(qǐng)求所干擾拯刁。
image.png
⑤如果想要抓取瀏覽器發(fā)送的請(qǐng)求包垛玻,勾選WindowsProxy選項(xiàng)之后還是抓取失敗帚桩,可能是瀏覽器沒有設(shè)置成使用系統(tǒng)的代理服務(wù)器,只要設(shè)置成使用系統(tǒng)的代理服務(wù)器郭蕉,或者將瀏覽器的代理服務(wù)器設(shè)置成127.0.0.1:8888也可以成功。
啟動(dòng)手機(jī)涨岁,打開軟件梢薪,就可以進(jìn)行聯(lián)網(wǎng)抓包測(cè)試
Charles提供兩種查看封包的頁簽,一個(gè)是Structure(結(jié)構(gòu))畜疾,另一個(gè)是Sequence(序列)啡捶,Structure用來將訪問請(qǐng)求按訪問的域名分類彤敛,Sequence用來將請(qǐng)求按訪問的時(shí)間排序墨榄。任何程序都可以在Charles中的Structure窗口中看到訪問的域名。
image.png
四之剧、證書安裝
1. 為什么要安裝證書
我們以前抓包都是抓取的是HTTP的請(qǐng)求,如果抓取HTTPS就會(huì)亂碼玻蝌,并不是沒有抓取到帘腹,見下圖:
image.png
怎么解決呢?安裝證書
2. Windows證書安裝
image.png
image.png
image.png
image.png
image.png
image.png
image.png
3. Charles證書導(dǎo)出
1狸页、打開charles
2芍耘、選擇help-ssl proxying
3倔约、save
4钾军、選擇存放路徑以及證書名
4. charls證書導(dǎo)入
IE瀏覽器:設(shè)置 → Internet選項(xiàng) → 內(nèi)容 → 證書 → 導(dǎo)入 → 下一步 → 選擇證書 → 選擇所有證書都放入下列存儲(chǔ)(P) → 瀏覽,選擇“受信任的根證書頒發(fā)機(jī)構(gòu)” → 下一步 → 完成樱哼。
chrome瀏覽器:設(shè)置 → 管理證書(安全) → 導(dǎo)入 → 下一步 → 選擇證書 → 選擇所有證書都放入下列存儲(chǔ)(P) → 瀏覽,選擇“受信任的根證書頒發(fā)機(jī)構(gòu)” → 下一步 → 完成。
5. Chales HTTPS代理配置
證書安裝之后發(fā)現(xiàn)還是亂碼和unknown,需要配置代理
image.png
image.png
五、Charles常用功能
1. 過濾不必要的網(wǎng)絡(luò)包
在抓取手機(jī)發(fā)送的請(qǐng)求時(shí)常遂,有許多請(qǐng)求包是對(duì)圖片等不需要關(guān)注的資源的請(qǐng)求挽荠,我們只想對(duì)指定目錄服務(wù)器上發(fā)送的請(qǐng)求進(jìn)行抓取克胳,這時(shí)候就可以通過過濾網(wǎng)絡(luò)包的方式實(shí)現(xiàn)。有兩種實(shí)現(xiàn)方式:
1)選擇Proxy->Recording Settings菜單圈匆,然后在include欄添加需要抓取包的指定服務(wù)器請(qǐng)求協(xié)議漠另、地址、端口號(hào)跃赚,也可以在exclude欄添加不抓取包的地址笆搓。
image.png
image.png
include:能抓取到的
exclude:不能抓取到的
2)在主界面的中部的 Filter 欄中填入需要過濾出來的關(guān)鍵字。例如我們的服務(wù)器的地址是:http://blog.csdn.net, 那么只需要在 Filter 欄中填入 csdn 即可。
注意:通常情況下领猾,我們使用方法一做一些臨時(shí)性的封包過濾少孝,使用方法二做一些經(jīng)常性的封包過濾。
2. 斷點(diǎn)替換/修改數(shù)據(jù)
2.1. 斷點(diǎn)的作用:用來構(gòu)建異常的測(cè)試場(chǎng)景
2.2. 步驟:
方式一:
右擊接口鏈接,選擇“BreakPoints”
image.png
在瀏覽器刷新對(duì)應(yīng)接口的頁面
此時(shí)會(huì)自動(dòng)跳轉(zhuǎn)到Charles并顯示出接口請(qǐng)求信息
點(diǎn)擊“Edit Request”在塔,修改請(qǐng)求信息,點(diǎn)擊“Execute”
image.png
點(diǎn)擊“Edit Response”
在數(shù)據(jù)格式蘭中選擇合適的顯示格式喘垂,比如“json”
修改對(duì)應(yīng)的數(shù)據(jù),點(diǎn)擊“Execute”
回到瀏覽器查看數(shù)據(jù)應(yīng)該為修改之后的response的信息
方式二:
Proxy → Breakpoint settings...中手動(dòng)新建/啟用某個(gè)斷點(diǎn);
要求勾選enable breakpoints之后當(dāng)下次再有該請(qǐng)求時(shí),會(huì)自動(dòng)進(jìn)入斷點(diǎn)模式
image.png
image.png
新建斷點(diǎn)
image.png
3. 模擬慢網(wǎng)速
為什么要做模擬慢網(wǎng)速
不是所有的地方網(wǎng)絡(luò)都好赡麦,所以要模擬慢網(wǎng)速晶姊。主要用在App端,因?yàn)镻C一般都是寬帶聯(lián)網(wǎng)懊悯,而App哪里都有可能去观堂。比如泞辐,測(cè)試上廁所
image.png
4. 壓測(cè)服務(wù)器
依次點(diǎn)擊tools—Repeat Advanced
選擇好并發(fā)線程數(shù)和打壓次數(shù)莉御,點(diǎn)擊ok就能進(jìn)行對(duì)產(chǎn)品的GET和POST請(qǐng)求進(jìn)行測(cè)試服務(wù)器并發(fā)處理的性能讥蔽,當(dāng)然這里只是簡(jiǎn)單的進(jìn)行壓測(cè),并且只能對(duì)Charles抓到的http協(xié)議的請(qǐng)求進(jìn)行重復(fù)并發(fā),缺點(diǎn)就是如TCP類的抓不到的就不能了,算是個(gè)小小的缺陷吧凫乖。
image.png
5 . 模擬404
1款票、tools——>blacklist
image.png
2、 允許啟用黑名單功能,選擇接口返回錯(cuò)誤的形式(404 或者403),添加接口地址并保存
image.png
【blocking connection】 選項(xiàng)可以選擇“drop connection”或者 “403 respose”.前者接口會(huì)直接返回404錯(cuò)誤刑桑,后者接口返回403錯(cuò)誤
3填抬、 選中需要返回404/403的接口,點(diǎn)擊【ok】
image.png