找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 73|回复: 0

使用wireshark分析mqtt数据

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105836
发表于 2022-8-25 09:33:49 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×


一开始直接过滤没有发现mqtt的协议(后来发现是开始捕获数据的时候,1883端口刚好没有数据),上网看了要加.lua脚本,加了不好用。有的博客说最新的wireshark不需要脚本,于是直接升级到了Version 3.2.2 (v3.2.2-0-ga3efece3d640)。由于端口问题和测试时间问题还是没有数据。看到别的博客要先设置端口,在wireshark的“编辑”-》“首选项”-》“Protocols”-》“MQTT”中设置端口,
[backcolor=transparent !important]然后就能看到过滤出mqtt协议的数据了(因为我是用网页发送mqtt数据,所以端口号是8083).后来把端口号修改成1883,服务启动之后也有数据了。
[backcolor=transparent !important]记录一下mqtt协议
[backcolor=transparent !important]1.两个byte的固定头
[td]
bit76543210
byte 1Message TypeDUP flagQoS levelRETAIN
byte 2Remaining Length
  • 第一个byte4-7bit的意义:

[backcolor=transparent !important]名字
流向描述
CONNECT1C->S客户端请求与服务端建立连接
CONNACK2S->C服务端确认连接建立
PUBLISH3CóS发布消息
PUBACK4CóS收到发布消息确认
PUBREC5CóS发布消息收到
PUBREL6CóS发布消息释放
PUBCOMP7CóS发布消息完成
SUBSCRIBE8C->S订阅请求
SUBACK9S->C订阅确认
UNSUBSCRIBE10C->S取消订阅
UNSUBACK11S->C取消订阅确认
PING12C->S客户端发送PING(连接保活)命令
PINGRSP13S->CPING命令回复
DISCONNECT14C->S断开连接
  • 第一个byte第3bit DUP flag是用来在保证消息传输可靠的,如果设置为1,则在下面的变长头部里多加MessageId,并需要回复确认,保证消息传输完成,但不能用于检测消息重复发送
  • 第一个byte1-2bit QoS主要用于PUBLISH(发布态)消息的,保证消息传递的次数。00表示最多一次 即<=1;01表示至少一次 即>=1;10表示一次,即==1;11保留后用
  • 第一个byte第0bit retain 主要用于PUBLISH(发布态)的消息,表示服务器要保留这次推送的信息,如果有新的订阅者出现,就把这消息推送给它。如果不设那么推送至当前订阅的就释放了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-10 12:23

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表