https://blog.csdn.net/weixin_44725380/article/details/118574271
補檔
一、概念
抓包就是將網路傳輸傳送與接收的資料包進行截獲、重發、編輯、轉存等操作,也用來檢查網路安全等。
二、為什麼進行抓包測試
1、有時候公司中介面文件某幾個資訊可能不詳細,要測試這些介面的請求引數與響應結果,以及資料傳輸是否安全,那麼可以使用抓包工具
3、透過抓包工具,可以分析介面的請求引數、響應結果以及資料傳輸是否安全
4、透過抓包工具,可以編輯請求或者響應,達到測試效果
三、抓包請求原理
四、抓包工具之Charles
4.1、Charles破解
help–>register charles
* https://zhile.io
* 48891cf209c6d32bf4
4.2、關閉電腦的防火牆
4.3、抓包常用操作
4.3.1、設定charles允許代理
4.3.1.1、proxy–>proxy setting -->勾選enable…
4.3.1.2、設定手機/模擬器http代理為手動代理並輸入ip地址及埠號
4.3.1.3、操作手機時,彈出是否允許的詢問框時,點選allow
4.3.1.4、新增過濾器
我們可以在工作中過濾到需要查詢的介面。
4.3.2、設定抓取https請求
安裝charles之後的完整設定——>http/https
● 設定Charles允許抓取http
○ proxy——>proxy setting——>勾選enable proxying http
● 關閉電腦防火牆,並使電腦和手機處在同一網路下
● 設定手機上網經過代理伺服器
○ 選擇WiFi高階(修改網路)——>選擇手動代理——>輸入電腦IP和Charles執行的埠號(一個埠只能執行一個應用)
● 當電腦網路更換後,需要重新設定IP!
● 操作手機時,Charles上會彈出允許/拒絕的詢問框,點選allow
● 電腦上安裝Charles證書並信任證書
○ 安裝到電腦
■ Charles;help——>ssl proxying——>點選install charles root certificate(安裝ca證書)
○ 電腦信任證書
■ 找到IE瀏覽器C:\Program Files\Internet Explorer
● 設定——>Internet選項——>內容——>證書
○ 需要把Charles證書放到受信任裡面
○ 若在受信任裡邊,無需造作;若在中間證書頒發機構裡邊,需要匯出,然後匯入到受信任的根證書頒發機構裡邊
● 手機上安裝證書
○ Charles選擇help——>ssl proxying——>點選install charles certificate on a mobile device…
○ 開啟手機瀏覽器 輸入chls.pro/ssl進行安裝證書
● Charles進一步設定抓取https
○ proxy——>ssl proxying setting——>勾選enable ssl proxing並新增主機和埠號(建議直接新增)
4.3.3、斷點操作
4.3.3.1、斷點操作的原因
我們在做前後臺聯調測試的時候,需要修改後臺資料庫中的資料,來檢視前臺頁面上資料是否對應的改變,但是很多情況下我們沒有修改資料庫的許可權,可以藉助於斷響應的操作來模擬的修改後臺資料。
proxy–>breakpoints setting -->enable breakpoints(允許斷點)
4.3.3.2、斷請求
4.3.3.3、斷響應
4.3.4、弱網測試
4.3.4.1、弱網設定
原理:限制頻寬
proxy–>throttle setting–>勾選enable throttle–>only for select hosts(只限速選中的主機路徑)
4.3.4.2、弱網原理
● charles模擬弱網的原理是限制頻寬fiddler模擬弱網是延長時間
● charles可以只對某個主機路徑進行限速;而fiddler是對所有的路徑進行限速
● 2G:15-20kb/s、一般設定10kb/s的速度
● 注意:不使用弱網的時候,一定關閉限速
4.3.5、模擬本地資料Map Local
4.3.5.1、使用map local進行mock資料的原因
我們在做前後臺聯調測試的時候,需要修改後臺資料庫中的資料來檢視前臺頁面是否會對應改變,可以藉助map local的功能,透過修改本地資料來模擬的修改後臺資料庫資料。
【注】不使用的時候 關閉map local : tools–>map local–>取消勾選enable map local
4.3.6、模擬遠端伺服器Map Remote
4.4、小程式抓包
小程式抓包需要使用mumu模擬器,並且處於除錯階段才能抓取或者使用ios或者android7.0以後的系統,微信開發平臺設定證書信任。
4.5、web_PC抓包
對於使用mac電腦的人,Charles應該是非常熟悉的,這是一款十分好用的抓包工具。現在windows上也能夠使用了。Charles在Windows下,預設只代理IE瀏覽器,對Chrome需要設定後才能抓包:
1、谷歌應用中心下載switchy sharp;對於無法訪問谷歌應用商店的,可以下載谷歌訪問助手。
2、Charles設定Proxy Settings
3、開啟swithcy sharp,設定手動代理
4、選擇預先設定好的情景模式,並開啟Charles的windows proxy即可對瀏覽器進行抓包。
五、抓包工具之Fiddler
Fiddler完整設定抓取HTTP協議
● 設定fiddler允許抓取http
○ tools(工具)——>options(選項)——>connection(連線)——>勾選allow remote computer to connect(允許遠端連線到fidder)
● 設定手機
○ 手機與電腦置於同一網路,設定手動代理並輸入IP+埠號
● 設定fiddler允許抓取https,並安裝證書到電腦
○ tools——>options——>https——>勾選detry https traffic(允許https)
■ 若自動彈出信任證書的詢問框,點選yes進行證書安裝
■ 若不自動彈出,actions——>reset all certificate(重置所有證書),檢視是否彈出信任證書的提示框,彈出點選yes進行安裝
● 若依舊未彈出詢問框,actions——>點選trust root certificate(手動信任證書)
○ 勾選ignore server certificate errors(忽略伺服器證書錯誤)
● 手機瀏覽器輸入IP+埠號,將證書安裝到手機上
● 在抓取http設定的基礎上進行以下的設定
○ tool——>options——>https
■ 勾選decrypt https…>可能會彈出安裝證書的詢問框(信任fidder證書嗎?)
● 選擇信任
● 若沒有彈框,action——>reset all ca(重置,刪除證書)
六、Charles與Fiddler的區別
1、charles可以實時過濾請求,fiddler新增過濾器後再傳送請求才能起作用
2、charles可以樹狀或者列表檢視各個請求,fiddler只能列表檢視
3、charles可以對某個請求進行斷點操作,而fiddler是對所有的請求進行斷點
4、charles模擬弱網是限制頻寬,並且可選擇只對某個app進行限速;而fiddler是延長時間,並且是對整個手機進行限制
七、抓包常見問題
——致敬那些踩過的坑
● 是不是所有的app都能被抓取到資料?
○ 如果一個上線的app能夠被抓取到資料 本身就是不安全的
○ 一個上線的app是不應該被抓取到資料的
● 避免被抓包的方式:
○ 可以判斷是否使用了代理伺服器,如果使用代理伺服器不繼續網路請求
○ 前端(客戶端)程式設計師還可以判斷證書的正確性,如果是假證書不繼續傳送請求,也抓取不到
○ 抓取出來的請求和響應全都是加密的亂碼資料,不是明文
● app抓取不到資料的表現:
○ 不開代理伺服器charles,app正常能夠使用
○ 開了代理伺服器之後,發現app總是提示網路異常提示證書錯誤
八、抓包測試的意義
● 分析介面響應時間及響應速度是否滿足要求(2-5-8原則),介面響應時間一般1s內。
○ 舉例:其他頁面開啟都會正常顯示,但是其中一個頁面需要等待5s左右才顯示?
○ 1、介面響應時間長 2、前端(客戶端)程式設計師接受到資料之後,解析渲染到頁面的時間長
● 分析介面中關鍵的資料(請求+響應)有沒有進行加密傳遞 — 安全性
● 抓包工具還可以進行斷點操作,可以判斷app有沒網路重連機制
● 斷請求可以修改請求方式、請求引數等,來達到介面測試效果
● 斷響應可以透過修改響應的資料來模擬修改後臺伺服器的資料,來檢視前端(客戶端)頁面是否對應改變
● map local可以透過修改本地資料,來模擬修改後臺伺服器資料,來檢視前端(客戶端)頁面是否對應改變
● 前後臺聯調測試的時候
○ 可以模擬弱網來進行弱網測試
○ 可以定位bug是在前臺還是後臺
■ 舉例:進入頁面展示空白,其他頁面都沒有問題,bug屬於前端(客戶端)還是服務端?
● 定位bug過程
○ 抓取請求,分析請求引數、路徑、方式等,跟介面文件中的介面進行對比,如果有問題,說明前端(客戶端)程式設計師傳送的請求是有問題的,bug出在前端(客戶端)
○ 檢視響應內容,如果有問題說明後臺返回資料有問題bug屬於服務端
○ 若服務端返回資料正常,說明前端(服務端)程式設計師在接受到資料之後的解析展示有問題,則bug屬於前端(客戶端)