五、身份验证协议中的安全漏洞
MySQL使用一个专有协议进行身份验证和发送接收数据。这个协议比较简单,所以可以为MySQL轻松编写一个定制的客户端。换句话说,MySQL身份验证协议的各版本中的严重漏洞可能会导致服务器立即被攻陷。下面我们介绍之前发现的一些漏洞,以及针对这些漏洞的攻击方法。
描述这些攻击方法之前,我们先来大致介绍涉及身份验证协议的包格式和加密机制。当客户端连接服务器时,服务器问候数据包,其中包含下列域:
- Packet Length (3 bytes)
- Packet Number (1 byte)
- Protocol Version (1 byte)
- Server Version String (以null结尾)
- Server Thread ID (4 bytes)
- Challenge String (以null结尾)
- Server Capabilities Flags (2 bytes)
- Server Character Set (1 byte)
- Server Status (2 bytes)
- Padding (数据包的其余部分)
就身份验证协议而言,有关的内容是Protocol Version和Challenge域,但是Server Version String域则对确定服务器容易受到哪些身份验证漏洞的攻击非常有帮助。客户端然后会发送一个身份验证数据包给服务器:
- Packet Length (3 bytes)
- Packet Number (1 byte)
- Client Capabilities (2 bytes)
- Max packet size (3 bytes)
- Username (以null结尾)
- Password (challenge响应以null结尾)
下面我们对身份验证协议中的安全漏洞进行介绍。MySQL身份验证协议中已经发现过许多安全漏洞,我们这里略举一二。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。