Charles與Fiddler的愛恨情仇之讓抓包飛起來

hrdom發表於2024-04-11

https://blog.csdn.net/weixin_44725380/article/details/118574271

補檔

 一、概念
  抓包就是將網路傳輸傳送與接收的資料包進行截獲、重發、編輯、轉存等操作,也用來檢查網路安全等。
  二、為什麼進行抓包測試
  1、有時候公司中介面文件某幾個資訊可能不詳細,要測試這些介面的請求引數與響應結果,以及資料傳輸是否安全,那麼可以使用抓包工具
  2、透過抓取資料請求,可以放到Jmeter中對伺服器做壓力或者介面測試
  3、透過抓包工具,可以分析介面的請求引數、響應結果以及資料傳輸是否安全
  4、透過抓包工具,可以編輯請求或者響應,達到測試效果
  三、抓包請求原理
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  四、抓包工具之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…
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.3.1.2、設定手機/模擬器http代理為手動代理並輸入ip地址及埠號
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.3.1.3、操作手機時,彈出是否允許的詢問框時,點選allow
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.3.1.4、新增過濾器
  我們可以在工作中過濾到需要查詢的介面。
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  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(允許斷點)
Charles與Fiddler的愛恨情仇之讓抓包飛起來Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.3.3.2、斷請求
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.3.3.3、斷響應
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.3.4、弱網測試
  4.3.4.1、弱網設定
  原理:限制頻寬
  proxy–>throttle setting–>勾選enable throttle–>only for select hosts(只限速選中的主機路徑)
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  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的功能,透過修改本地資料來模擬的修改後臺資料庫資料。
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  【注】不使用的時候 關閉map local : tools–>map local–>取消勾選enable map local
  4.3.6、模擬遠端伺服器Map Remote
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4.4、小程式抓包
  小程式抓包需要使用mumu模擬器,並且處於除錯階段才能抓取或者使用ios或者android7.0以後的系統,微信開發平臺設定證書信任。
  4.5、web_PC抓包
  對於使用mac電腦的人,Charles應該是非常熟悉的,這是一款十分好用的抓包工具。現在windows上也能夠使用了。Charles在Windows下,預設只代理IE瀏覽器,對Chrome需要設定後才能抓包:
  1、谷歌應用中心下載switchy sharp;對於無法訪問谷歌應用商店的,可以下載谷歌訪問助手。
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  2、Charles設定Proxy Settings
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  3、開啟swithcy sharp,設定手動代理
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  4、選擇預先設定好的情景模式,並開啟Charles的windows proxy即可對瀏覽器進行抓包。
Charles與Fiddler的愛恨情仇之讓抓包飛起來
  五、抓包工具之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屬於前端(客戶端)

相關文章