使用Scapy解析MySQL头文件

时间:2017-10-04 19:25:50

标签: python mysql parsing scapy pcap

我正在尝试从捕获文件解析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负载中每个字段的大小是什么?我假设,如果我知道每个字段的长度,我可以简单地步骤那么读取相应的数据。)

1 个答案:

答案 0 :(得分:0)

Scapy中没有MySQL协议支持,因此您必须编写自己的图层。请参阅documentation about adding new layers