【发布时间】:2017-10-06 23:11:19
【问题描述】:
我正在尝试从捕获文件中解析 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 负载中每个字段的大小是多少?我假设,如果我知道每个字段的长度,我可以简单地步进那么多并读取适当的数据。)
【问题讨论】:
-
当您单击它们时,Wireshark 是否不会为您提供每个已识别 MySQL 字段的偏移量和大小(它应该在底部突出显示十六进制有效负载中的相应字节)?
标签: python mysql parsing scapy pcap