Mysql本地提权及远程代码执行漏洞浅析(CVE-2016-6662)

本文分析了MySQL的CVE-2016-6662漏洞,影响5.5、5.6、5.7版本。漏洞利用可通过远程数据库连接、phpMyAdmin和SQL注入。主要原理是mysqld_safe以root权限启动,允许通过my.cnf配置恶意库路径,导致root权限代码执行。文章列举了三种实现方式,包括修改my.cnf、利用数据目录的配置文件和使用触发器。最后提供了相关资源链接供参考。
摘要由CSDN通过智能技术生成

0x00 漏洞影响

mysql 5.5、5.6、5.7 在10月份更新前的所有版本,包括分支版本MariaDB和PerconaDB 。

0x01 利用途径

通过远程数据库连接,web接口如phpMyAdmin,以及sql注入都可以完成。

0x02 漏洞原理

一些默认的mysql安装方式并且mysqld_safe脚本作为包装器以root权限启动mysql服务进程,比如像:

service mysql start
/etc/init.d/mysql start

ps aux | grep mysql以后你会发现mysqld_safe是以root权限运行,而mysql的主进程被降为了mysql用户,其中mysqld_safe有如下代码:

----[ /usr/bin/mysqld_safe ]----

[...]

# set_malloc_lib LIB
# - If LIB is empty, do nothing and return
# - If LIB is 'tcmalloc', look for tcmalloc shared library in /usr/lib
#   then pkglibdir.  tcmalloc is part of the Google perftools project.
# - If LIB is an absolute path, assume it is a malloc shared library
#
# Put LIB in mysqld_ld_preload, which will be added to LD_PRELOAD when
# running mysqld.  See ld.so for details.
set_malloc_lib() {
  malloc_lib="$1"

  if [ "$malloc_lib" = tcmalloc ]; then
    pkglibdir=`get_mysql_config --variable=pkglibdir`
    malloc_lib=
    # This list is kept intentionally simple.  Simply set --malloc-lib
    # to a 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值