0x01
在进行真正的 mysql 部署之前,我们不妨先来大致了解下,在实际入侵过程中,仅仅利用mysql,我们到底能干些什么,了解了这些最基本的点之后,我们再进行针对性防御
1、普通用户权限下的 '增删改查',即 常规sql注入,俗称'脱裤'
2、普通用户file权限下的 '文件读写',可尝试读取各类敏感配置,如各类账号或者尝试直接往站点目录中写webshell
3、root用户权限下的 '读写文件' , '系统命令执行'... 可读写是因为root本身就有file权限,另外,如果直接以root身份运行mysql服务,亦可实现'提权'的效果
4、针对 '数据库连接' 的'DDOS',单用户大批量数据库连接可能会导致mysql无法再提供服务
0x02 演示环境:
1、CentOS6.8 x86_64 最小化,只带基础库安装 eth0: 192.168.3.42 eth1: 192.168.4.14 eth2: 192.168.5.14
2、mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz 此次mysql就不再手工编译了,时间比较长,直接用mysql官方提供好的二进制包来做演示
0x03下载,解压 mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
1、# tar xf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
2、# mv mysql-5.6.27-linux-glibc2.5-x86_64 /usr/local/
3、# ln -s /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/ /usr/local/mysql/
4、# ls -l /usr/local/mysql/
0x04 开始初始化mysql
务必以一个伪用户身份来运行mysql服务,防止别人利用mysql进行提权,后面还会再细说,另外,web服务和数据库服务严禁用同一个系统用户,这样做主要是为了防止入侵者直接通过sql语句往网站目录中写webshell
1、# useradd -s /sbin/nologin -M mysql
1、# chown -R mysql.mysql /usr/local/mysql/ && ll /usr/local/mysql/ 暂时先让mysql用户对mysql的安装目录能正常读写/
2、# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
3、# chown -R root.root /usr/local/mysql/ && ll /usr/local/mysql//
4、# chown -R mysql.mysql /usr/local/mysql/data/ && ll /usr/local/mysql/data/
5、# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 创建mysql配置文件/
6、# /usr/local/mysql/bin/m