学做衣服网 缤纷网站,app开发公司 上海,云开发布道师,seo推广工具摘要今天有个关于MySQL的漏洞被披露出来#xff0c;编号CVE-2016-6662。该漏洞主要涉及到 mysqld_safe 脚本中在加速/处理内存时会采用 “malloc_lib”变量作为辨别标记选择性加载(preload方式)比如tcmalloc之类的malloc库。不幸的的是这个变量可以被my.cnf所控制#xff0c;…摘要今天有个关于MySQL的漏洞被披露出来编号CVE-2016-6662。该漏洞主要涉及到 mysqld_safe 脚本中在加速/处理内存时会采用 “malloc_lib”变量作为辨别标记选择性加载(preload方式)比如tcmalloc之类的malloc库。不幸的的是这个变量可以被my.cnf所控制导致my.cnf一旦被攻击者在mysql客户端篡改的话可以直接导致mysqld_safe所调用的mysqld进程执行权被控制。前言今天有个关于MySQL的漏洞被披露出来编号CVE-2016-6662。该漏洞主要涉及到 mysqld_safe 脚本中在加速/处理内存时会采用 “malloc_lib”变量作为辨别标记选择性加载(preload方式)比如tcmalloc之类的malloc库。不幸的的是这个变量可以被my.cnf所控制导致my.cnf一旦被攻击者在mysql客户端篡改的话可以直接导致mysqld_safe所调用的mysqld进程执行权被控制。技术分析具体的攻击思路前言部分基本已经表述出来这里不再重述。笔者来看看漏洞作者在【1】中做了3种攻击方式。作者的思路基本是围绕着如何用这几种技巧写入 my.cnf 被mysqld_safe调用执行这个中心攻防点来进行。我们先看看最简单的第1种方法1)采用 set global general_log 来绕过已存在文件(即my.cnf)a)设置 my.cnf 为 mysql 用户所在权限的基础上# ll /etc/my.cnf-rw-r--r-- 1 mysql mysql 380 Sep 12 23:18 /etc/my.cnf注默认权限是root但是不排除mysql集群使用时每个my.cnf是mysql组可读写b)开始攻击各位直接看图吧注: 这里使用root登录普通用户默认是没更改全局变量general_log_file 的权限12mysql set global general_log_file /etc/my.cnf;ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation攻击成功后的my.cnf2)使用隐藏的/var/lib/mysql/.my.cnf 和 /var/lib/mysql/my.cnf这部分讲起来其实意义不大就是历史原因造成这部分mysql数据目录下的my.cnf和.my.cnf。最糟糕的是这部分还是mysql用户组可以读写的目录。所以我们又能控制到my.cnf了。写入的方法有两种一种还是方法一的变量另一个是常见 INTO OUTFILE 文件注入技巧。3)作者考虑下了上面2种方式都是需要作者在假设攻击者还有文件权限的情况下使用写入触发器文件的方式来“CREATE DEFINERrootlocalhost TRIGGER appendToConfAFTER INSERTON active_table FOR EACH ROWBEGINDECLARE void varchar(550);set global general_log_file/var/lib/mysql/my.cnf;set global general_log on;select [mysqld]malloc_lib/var/lib/mysql/ INTO void;set global general_log off;END;接下来就等这个这个触发器在表被flushed的时候被触发了(说真的笔者没实践这个步骤)比如1INSERT INTO active_table VALUES(xyz);这样我们就可以最后关于PoC或相关的信息您可以直接访问【1】获得。作者其实在后面的so也提供一个很好的回写技巧由于preload可以优先mysqld进程加载my.cnf所以它就能修复my.cnf里的内容。J最后这个漏洞的危害建立在一个你至少需要普通用户的基础上危害程度得因人而异不注意安全的可能使用的mysql是一大堆弱口令的root用户注意安全的基本都是普通mysql用户集群上启动MySQL进程的用户也是个需要考虑的至于web注入点使用这个功能个人觉得可能就比较窄了。MySQL的修复【】选择的是对malloc_lib的路径进行限制 /usr/lib, /usr/lib64, /usr/lib/i386-linux-gnu, or /usr/lib/x86_64-linux-gnu最后笔者认为My参考本文由 安全客 原创发布如需转载请注明来源及本文地址。本文地址http://bobao.360.cn/learning/detail/3026.html