我正在尝试从捕获文件解析MySQL服务器问候语(以及稍后的客户端响应)数据包。我能够看到IP和TCP标头,但是Scapy会显示MySQL标头。
问题是如何从原始数据中获取盐?
这是我在Wireshark中所拥有的(省略了TCP标题):
MySQL Protocol
Packet Length: 52
Packet Number: 0
Server Greeting
Protocol: 10
Version: 5.0.54
Thread ID: 94
Salt: >~$4uth,
Server Capabilities: 0xa22c
Server Language: utf8 COLLATE utf8_general_ci (33)
Server Status: 0x0002
Extended Server Capabilities: 0x0000
Authentication Plugin Length: 0
Unused: 00000000000000000000
Salt: >612IWZ>fhWX
这就是Scapy给我的:
###[ TCP ]###
sport = mysql
dport = 56162
seq = 3442775512
ack = 3436755790
dataofs = 8
reserved = 0
flags = PA
window = 512
chksum = 0x83ab
urgptr = 0
options = [('NOP', None), ('NOP', None), ('Timestamp', (15785614, 15785614))]
###[ Raw ]###
load = b'4\x00\x00\x00\n5.0.54\x00^\x00\x00\x00>~$4uth,\x00,\xa2!\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>612IWZ>fhWX\x00'
正如你所看到的那样,TCP就像我在Wireshark中看到的那样,但MySQL有效载荷只是原始的。
有关如何解析的任何建议吗? (或者说MySQL负载中每个字段的大小是什么?我假设,如果我知道每个字段的长度,我可以简单地步骤那么读取相应的数据。)