由於圖片和格式的解析問題,可前往 閲讀原文
往期文章我們已經講過fiddler、charles以及wireshark等多種抓包工具,已經在工作中足夠解決各種抓包問題了,但我今天還想再分享給大家一款抓包工具 whistle,因為它真的很優秀,本人在工作中也一直在用這個
為什麼我會選擇whistle,首先是fiddler不支持MacOS,其次Charles在M1芯片上會感覺明顯的卡頓;除此之外是whistle更加輕量簡單、開源免費!且滿足前面幾款抓包工具的所有功能,久而久之就一直在用這個了
whistle 是基於 Node.js 開發的跨平台抓包調試工具。支持 HTTP、HTTPS 請求的抓包分析,並具有插件化、靈活配置的特點。Whistle 通過代理的方式攔截請求,開發者可以方便地重定向、修改請求/響應內容,或進行接口 Mock 等操作
下載安裝
由於whistle是基於NodeJS開發的,因此使用它有2種方式(推薦使用客户端):
-
安裝NodeJS包,在終端使用命令行運行
npm install -g whistle w2 start
更多運行命令腳本,點這裏查看 whistle命令文檔
- 下載whistle客户端
安裝後界面大概如下
面板介紹
可以看到整個界面還是比較簡潔,整體包含:功能區、菜單欄、抓包記錄、請求詳情、抓包過濾等一些區域
抓包記錄
當正在抓包時左上角的Record會顯示紅色,此時whistle會將所有的請求抓取到中間面板列表
底部可以通過關鍵字、正則過濾自己想要的數據
規則
規則主要來攔截不同的請求,根據設置的規則命中目標請求後,根據選擇響應命令返回,其中包含:延時、替換等多種形式功能
下面是創建的一個名叫App Test的規則集,裏面我們就使用了2個規則:
# 延時
/\.(png|jpg|webp|jpeg)/ resDelay://2000
# 匹配到 usword.cn 結尾
.*usword.cn resBody://{test}
什麼意思呢?創建的每個規則都可以影響到請求,當規則後面打了✅就代表生效中;上方的test表示一個規則值,這個是用户創建的,下個章節我們講
resDelay、resBody都是一些常用的響應關鍵字,這裏簡單列舉2個,更多查看文檔
上面的規則只要匹配到這些結尾的圖片,就會延時2s中響應,大家可以試試
規則值
規則值主要就是提供給用户自定義響應內容的,用户可以創建多個規則值,然後在規則中使用規則值
上面我們定義規則值 test 的響應內容為 code: 200,上面我們規則中攔截的是 usword.cn 的請求都返回test規則值,此時刷新網頁:
抓包詳情面板
點擊左側任意一個抓包記錄,右側會顯示詳細的請求及響應內容,類似於Chrome Devtool面板那種
可以看出上面部分為請求體,下面部分為響應體
請求替換
請求替換或者説代理是很多抓包工具常有的功能,在上面我們介紹了 規則 和 規則值後,大家應該也都知道怎麼做了;主要是還有很多命令需要翻閲文檔,這裏就不再展開了
HTTPS
如果此時抓包HTTPS的請求,會發現響應體的內容都是亂碼,也及時無法解密。至於為什麼這裏不做解釋了,你可以查看我的往期文章「HTTP協議及安全防範」,關鍵就是由於沒有證書,whistle沒法成為目標服務器和本機系統的代理人,系統不會信任代理請求,因此需要將whistle內部的證書安裝到系統中,這樣whistle就可以拿着證書成為服務器和主機之間的代理人
安裝系統證書非常簡單,點擊菜單欄Install Root CA
此時重啓whistle,重新抓包HTTPS請求,就可以看到解包後的內容了
抓包手機請求
手機抓包已經成了很常用的功能,那麼在whistle中操作也非常簡單,也是點擊菜單欄Proxy Settings:
自定義whistle端口,並設置為系統代理:
查看主機ip後,打開手機找到和主機同一WiFi,點擊代理設置,將ip和端口輸入後保存:
此時訪問網頁,就可以抓到內容了
手機配置HTTPS
和主機HTTPS抓包道理一樣,如果手機要能信任代理人,就必須在系統中植入whistle的證書;那麼使用whistle可以很方便的安裝證書到手機中
用户可以直接點擊Settings就會彈出下載證書的二維碼,這時候使用手機掃描訪問就會自動下載:
下載到手機後,需要在手機設置裏點擊證書,會彈出 信任證書 此時輸入手機密碼即可,這裏不做演示了,可以查看往期其他的抓包軟件演示
插件
插件系統是whistle核心特色之一。通過插件,Whistle 可以擴展功能以滿足各種調試需求,例如接口錄製、回放、遠程調試、Mock 數據生成等。插件是基於 Node.js 開發的,可以根據項目需求自行編寫或安裝已有的插件
你可以前往官方文檔查看了解插件系統,比較簡單
總結
除了文中提到的功能外,whistle還有很多實用的功能,你可以查看whistle官方文檔
whistle基於Node實現的跨平台web調試代理工具,類似的工具有Windows平台上的Fiddler,主要用於查看、修改HTTP、HTTPS、Websocket的請求、響應,也可以作為HTTP代理服務器使用,不同於Fiddler通過斷點修改請求響應的方式,whistle採用的是類似配置系統hosts的方式,一切操作都可以通過配置實現,支持域名、路徑、正則表達式、通配符、通配路徑等多種匹配方式,且可以通過Node模塊擴展功能
由於圖片和格式的解析問題,可前往 閲讀原文