wireshark如何抓取WebSocket資料報

2021-09-28 22:42:32 字數 1340 閱讀 6372

websocket目前在web端使用廣泛,可以使用websocket來傳輸資料,解決了web端無法跟伺服器維持高效的長鏈結的問題。什麼是websocket呢?websocket是一種瀏覽器與伺服器進行全雙工通訊的應用層協議。它基於 tcp 傳輸協議,並復用 http 的握手通道,可以在瀏覽器裡使用,支援雙向通訊。

本文來講述一下如何通過wireshark來抓取websocket資料,進行協議分析。

要使用wireshark抓取websocket包,需要注意一點,wireshark無法解析https協議,如果你的websocket使用的wss,就需要配置wireshark的tls解析,本文使用的是mac,會基於mac講解如何配置tls解析。

目前chrome和firefox都支援將https的對稱秘鑰儲存到日誌檔案中,前提是需要設定sslkeylogfile系統變數。目前wireshark 1.6.0及更高版本可以使用這些日誌檔案來解密資料報。

建立sslkeylog檔案

設定環境變數sslkeylogfile,開啟.zshrc檔案,新增如下:export sslkeylogfile=~/sslkeylogfile/keylogfile.log

開啟瀏覽器,訪問任意

開啟keylogfile.log,觀察對稱秘鑰是否寫入:

這裡需要注意,我們需要在終端模擬器啟動瀏覽器,否則,我們無法獲取對稱秘鑰,需要我們在.zshrc檔案配置chrome的快捷啟動配置見下:

alias chrome="open -a 'google chrome'"

termial啟動瀏覽器,輸入chrome,就可以啟動瀏覽器了。

開啟wireshark,wireshark->preferences->protocols->tls,見下圖:

參照上圖,配置上前面配置的keylogfile.log檔案

在wireshark的filter中輸入websocket,啟動抓包,會抓取websocket的包

抓包截圖見下:

可以看到我們已經可以正常抓取websocket包了。如果想看到完整的websocket互動,包括連線建立等,可以參照下圖配置:

wireshark如何抓取本機包

在進行通訊開發的過程中,我們往往會把本機既作為客戶端又作為伺服器端來除錯 使得本機自己和自己通訊。但是wireshark此時是無法抓取到資料報的,需要通過簡單的設定才可以。具體方法如下 方法一 1.以管理員身份執行cmd 2.route add 本機ip mask 255.255.255.255 閘...

wireshark如何抓取本機包

在進行通訊開發的過程中,我們往往會把本機既作為客戶端又作為伺服器端來除錯 使得本機自己和自己通訊。但是wireshark此時是無法抓取到資料報的,需要通過簡單的設定才可以。具體方法如下 以管理員身份執行cmd route add 本機ip mask 255.255.255.255 閘道器ip 此時再...

wireshark如何抓取本機包

在進行通訊開發的過程中,我們往往會把本機既作為客戶端又作為伺服器端來除錯 使得本機自己和自己通訊。但是wireshark此時是無法抓取到資料報的,需要通過簡單的設定才可以。具體方法如下 以管理員身份執行cmd route add 本機ip mask 255.255.255.255 閘道器ip 此時再...