Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
phpmyadmin-issuperuser — phpMyAdmin 5.2.3 - 高危 - 远程 - 遗留 - isSuperUser 检查被跳过 | Kitploit
工具/GitHubGitHub/abraxas/phpmyadmin-issuperuser
权限提升漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试实验室与实践
GitHubabraxas/phpmyadmin-issuperuser

phpmyadmin-issuperuser

phpMyAdmin 5.2.3 - 高危 - 远程 - 遗留 - isSuperUser 检查被跳过

查看仓库
34天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - phpmyadmin-issuperuser

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-issuperuser

phpmyadmin-issuperuser

类别: 权限残留 可达性: 远程

phpMyAdmin 5.2.3(RELEASE_5_2_3 / 962857e)- phpMyAdmin

DatabaseInterface::isSuperUser() 并不是 SUPER / SYSTEM_USER 检查。它是 SELECT 1 FROM mysql.user LIMIT 1。任何能够读取 mysql.user 的账户都会在会话剩余时间内被缓存为超级用户。$cfg['AllowUserDropDatabase'] 默认为 false。DestroyController、SqlController、ImportController 以及数据库页面都通过 isSuperUser 捷径绕过了该标志。

这是 phpMyAdmin 的策略绕过,而不是新的 MySQL 权限。对 mysql.user 的 SELECT 加上 DROP,且没有 SUPER,就足以通过 PMA 执行 Drop。

ID暂无 CVE
类别权限残留
可达性远程(以 MySQL 账户进行已认证的 cookie 登录)
CWECWE-863
CVSS中危:6.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
产品phpMyAdmin
受影响版本5.2.3 标签 RELEASE_5_2_3(962857e4f63d42e38f11ff4d63f5e722018add76)
认证以 MySQL 账户进行已认证的 cookie 登录
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

一个已登录的 MySQL 账户,若能读取 mysql.user(典型的备份/监控 SELECT)并拥有 DROP,但没有 SUPER,就会被当作 phpMyAdmin 超级用户对待。

权限方法 / 汇聚点侦察 / 完整性 / 可用性实验验证或推断
绕过 $cfg['AllowUserDropDatabase']=false 并在数据库页面看到 DropGET index.php?route=/server/databases对 Drop UI 的侦察实验验证。selectuser 存在 bulkActionDropButton / selected_dbs[];plaindrop 不存在
通过 PMA destroy 处理器删除数据库POST index.php?route=/server/databases/destroy selected_dbs[]=dropme ajax_request=true该数据库的完整性 / 可用性实验验证。JSON success:true,"1 database has been dropped successfully." dropme 已消失
从 SQL 框运行 DROP DATABASEPOST index.php?route=/sql sql_query=DROP DATABASE \dropme_sql``该数据库的完整性 / 可用性实验验证。数据库已消失。负面账户得到 "DROP DATABASE statements are disabled."
解锁其他以 isSuperUser() 为门槛的 PMA 界面权限、复制、状态、用户组、引擎、binlog、变量这些界面的侦察 / 完整性从调用点推断。未实际测试
读取 mysql.userPMA 用作 SUPER 判定依据的 MySQL SELECT对 PMA 误认为 SUPER 的目录进行侦察实验验证。正是该授权被残留逻辑误认为 SUPER

本实验环境已排除:真正的 MySQL SUPER(SHOW GRANTS 仍为 USAGE + 表 DROP + 对 mysql.user 的 SELECT)。FILE、GRANT OPTION、shutdown 和 ALL PRIVILEGES 均未授予。拥有 DROP 但无 mysql.user 的 SELECT 的账户仍无法通过 PMA 执行删除。这不是新的 MySQL 权限,也不是 RCE。

同一版本固定点:WebAuthn CustomServer 残留。

我是如何发现的

我固定了 phpMyAdmin RELEASE_5_2_3。那些自称 SUPER 的权限门槛就应该看起来像 SUPER。而这个看起来像目录 SELECT:

$result = $this->tryQuery('SELECT 1 FROM mysql.user LIMIT 1');
$isSuperUser = false;
if ($result) {
    $isSuperUser = (bool) $result->numRows();
}
SessionCache::set('is_superuser', $isSuperUser);

围绕 AllowUserDropDatabase(默认 false)使用该标志的门槛:

  • Controllers/Server/DatabasesController.php is_drop_allowed
  • Controllers/Server/Databases/DestroyController.php(AJAX destroy)
  • Controllers/Sql/SqlController.php / Sql::hasNoRightsToDropDatabase
  • Controllers/Import/ImportController.php
  • Controllers/Database/OperationsController.php

已记录的弯路:声称是真正的 MySQL SUPER;将仅有 DROP 的账户当作漏洞(该账户是负面对照);将其夸大为 RCE;反弹 shell。都是表演。

实验环境

python3 phpmyadmin-issuperuser-Abraxas-Labs.py
# or: cd lab && ./run.sh

目标仅限 http://127.0.0.1:19270。镜像 phpmyadmin:5.2.3 和 mysql:8.0。Compose 项目 phpmyadmin-issuperuser。$cfg['AllowUserDropDatabase']=false。运行后栈会拆除。

selectuser 对 mysql.user 有 SELECT,并对 dropme / dropme_sql 有 DROP,没有 SUPER。plaindrop 仅对 nodropme 有 DROP。数据库页面为 selectuser 绘制 Drop。POST /server/databases/destroy 删除 dropme。POST /sql 携带 DROP DATABASE dropme_sql 也会执行。plaindrop 仍从 destroy 得到 Error JSON,并从 /sql 得到 "DROP DATABASE statements are disabled"。

SUCCESS phpmyadmin-issuperuser drop-ui=yes destroy=ok sql-drop=ok grants-no-super=yes mysql.user-select=yes neg-drop-ui=no neg-destroy=denied PMA-ISSUPERUSER-WITNESS

修复方案

通过 INFORMATION_SCHEMA 或 SHOW GRANTS 测试真正的 SUPER / SYSTEM_USER。为确实需要该目录的 UI 保留单独的 "can read mysql.user" 标志。不要将目录 SELECT 缓存为超级用户。

参考资料

  • github.com/phpmyadmin/phpmyadmin 标签 RELEASE_5_2_3(962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/DatabaseInterface.php isSuperUser()
  • 同一版本固定点:PMA-5.2.3-WebAuthn-2FA
  • CWE-863

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。无担保。

下载工具