当前位置:   article > 正文

java websocket 抓包,wireshark如何抓取WebSocket数据包

websocket wireshark fragment

wireshark如何抓取WebSocket数据包

wireshark如何抓取WebSocket数据包

前文

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及更高版本可以使用这些日志文件来解密数据包。

SSLKEYLOGFILE设置

创建sslkeylog文件

设置环境变量SSLKEYLOGFILE,打开.zshrc文件,添加如下:export SSLKEYLOGFILE=~/sslkeylogfile/keylogfile.log

打开浏览器,访问任意https://xxx.com

打开keylogfile.log,观察对称秘钥是否写入:

1f03ec31429beb3ebdea622a40dd4c14.png通过上图可以观察到,秘钥已经写入日志文件,这个时候wireshark就可以使用秘钥文件,进行解密了。

wireshark配置

打开wireshark,wireshark->preferences->protocols->tls,见下图:

e9ec15141f2bd19b5242b8559a9148a6.png

参照上图,配置上前面配置的keylogfile.log文件

验证

在wireshark的filter中输入websocket,启动抓包,会抓取websocket的包

抓包截图见下:

df11ccb00f7be0f1b29faba81fdcdf05.png

可以看到我们已经可以正常抓取websocket包了。如果想看到完整的websocket交互,包括连接建立等,可以参照下图配置:

1416a0a1d5d9097606fdce89a3faf699.png追踪TLS流,可以看到完整的交互。

wireshark如何抓取WebSocket数据包相关教程

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/249173
推荐阅读
相关标签
  

闽ICP备14008679号