Packet Length: 包体的有效长度。 Packet Number:包号。 Protocol: 协议版本,服务端所使用的mysql协议的版本号。 Server Version:服务器版本 Thread ID:连接ID(线程ID),服务端为此客户端所创建的线程的ID。 Salt:8字节用于安全认证的随机数,+1字节的0x00填充。 capalitity :服务器功能标志低2字节。定义如下 #def...
2-1)Mysql server发出问候包(mysql greeting) Transmission Control Protocol, Src Port: 3306, Dst Port: 45668, Seq: 1854855472, Ack: 3812756737, Len: 99 Mysql Protocol: Server Greeting proto=10 version=5.7.18-0ubuntu0.16.04.1-log 表示发送server greeting包,对客户端的访问表示友好地问候。如下图:表...
三次握手后,Server发送第一个认证包,包的格式如下: Packet Length: 包体的有效长度。 Packet Number:包号。 Protocol: 协议版本,服务端所使用的mysql协议的版本号。 Server Version:服务器版本 Thread ID:连接ID(线程ID),服务端为此客户端所创建的线程的ID。 Salt:8字节用于安全认证的随机数,+1字节的0x00填充。
我们点开 Wireshark 中服务端给客户端发送的初始数据包,从Server Greeting字段开始就是 payload 部分,也就是初始的握手数据包。从图中我们可以看到有协议版本、服务端的 MySQL 版本、进程 ID。这和我们上图的文档是不是完美对应上了? Protocol::HandShakeV10 只定义了一个数据包的 payload 部分,而关于头部的定义...
1、向 MySQL Client 发送Server Greeting 2、等待 Client 端发送一个Query Package 3、回复一个file transfer请求 现在要解决的就是两个问题,分别是Server Greeting包和file transfer包的格式,不过也不难,这些包的格式都可以在 MySQL 的官方文档上找到,首先来看File Transfer的包格式,Protocol::LOCAL_INFILE_Request,...
salt 是服务器的 ServerGreeting 传递回来的, 是一个 20自己的随机字节序列 clientPwd 是根据用户名, 密码 salt 加密之后的一个结果 serverPwd 是 mysql 中 mysql.user 库中该用户记录的 authentication_string 秘钥序列 /** * Test09MysqlLoginEncrypt ...
我们点开 Wireshark 中服务端给客户端发送的初始数据包,从 Server Greeting 字段开始就是 payload 部分,也就是初始的握手数据包。从图中我们可以看到有协议版本、服务端的 MySQL 版本、进程 ID。这和我们上图的文档是不是完美对应上了? Protocol::HandShakeV10 只定义了一个数据包的 payload 部分,而关于头部的定...
// Server Request Server Greeting Protocol: 10 Version: 8.0.30-MatrixOne-v286829 Thread ID: 893 Salt: \x12_"pID~\x11 Server Capabilities: 0xa68f Server Language: utf8mb4 COLLATE utf8mb4_bin (46) Server Status: 0x0002 Extended Server Capabilities: 0x013b Authentication Plugin Length: 21 ...
我们点开 Wireshark 中服务端给客户端发送的初始数据包,从Server Greeting字段开始就是 payload 部分,也就是初始的握手数据包。从图中我们可以看到有协议版本、服务端的 MySQL 版本、进程 ID。这和我们上图的文档是不是完美对应上了? Protocol::HandShakeV10 只定义了一个数据包的 payload 部分,而关于头部的定义...
server greeting和file transfer的包结构都可以在官方文档中找到 File Transfer数据包格式:Protocol::LOCAL_INFILE_Request 官方文档里还附带一张图,由这张图可以发现,我们需要等待一个来自 Client 的查询请求,才能回复这个读文件的请求 image 官方文档还给了一个example ...