欢迎投稿

今日深度:

MySQL安全攻防实战指南之体系结构篇(1)(5)

五、身份验证协议中的安全漏洞

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身份验证协议中已经发现过许多安全漏洞,我们这里略举一二。


www.htsjk.Com true http://www.htsjk.com/shujukuaq/16813.html NewsArticle 五、身份验证协议中的安全漏洞 MySQL使用一个专有协议进行身份验证和发送接收数据。这个协议比较简单,所以可以为MySQL轻松编写一个定制的客户端。换...
评论暂时关闭