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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-66492 — Joomla 扩展 PhocaCommander 在文件上传操作中存在路径遍历漏洞 - CVSS 6.1 | Kitploit
工具/GitHubGitHub/toanln-cov/cve-2026-66492
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试
GitHubtoanln-cov/cve-2026-66492

CVE-2026-66492

Joomla 扩展 PhocaCommander 在文件上传操作中存在路径遍历漏洞 - CVSS 6.1

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

文件上传目标中的路径遍历

PhocaCommander ≤ 6.1.3 — 已认证管理员可在 Web 根目录之外写入文件

CVE CVSS CWE-22 Affected Researcher


摘要

PhocaCommander 中的文件上传处理程序从攻击者可控的 base64 编码 folder 参数构造目标路径,且没有任何路径边界验证。经过身份验证的管理员可以将文件上传到 Web 根目录之外、Web 服务器进程可写的任意位置。

已在实验室确认:使用 folder=Li4vLi4vLi4vdG1w(即 ../../../tmp)上传时,上传的文件会被放置在 /tmp/——位于 /var/www/html/ 之外——且属主为 www-data。在生产环境的 PHP-FPM 中,此漏洞可被链式利用以实现远程代码执行。


受影响版本

组件受影响版本测试环境已修复版本
PhocaCommander1.0.0 – 6.1.3Joomla 5.4.7 + PhocaCommander 6.1.3 (PHP 8.2 / Apache)6.1.4

漏洞详情

所需认证: 管理员(会话 + CSRF 令牌)

文件: administrator/components/com_phocacommander/helpers/fileupload.php — realMultipleUpload()

根本原因

realMultipleUpload() 会将 folder POST 参数从 base64 解码,并直接将其传入 Path::clean() 的拼接中,随后用作上传目标路径,且没有任何边界检查。

FILEUPLOAD.PHP — 漏洞代码

root@kitploit:~
$folder = $app->getInput()->get('folder', '', '', 'string');
$folder = base64_decode($folder);         // ← attacker-controlled

$path = JPATH_ROOT;                       // = /var/www/html

if (isset($folder) && $folder != '') {
    $pathFolder = Path::clean($path . '/' . $folder . '/');
    // e.g. Path::clean('/var/www/html/../../../tmp/')
    // = '/tmp/' — outside the webroot, no error thrown
}

// ...
File::upload($file['tmp_name'], $pathFolder . strtolower($file['name']));

Path::clean() 会规范化目录分隔符,但不会解析或去除 ../ 序列。解析后的路径直接传递给 File::upload(),且没有后续的边界检查。

上传扩展名白名单

该处理程序强制执行扩展名白名单(图片、文档、压缩包、文本文件),并阻止服务器可执行类型(如 .php 和 .htaccess)。然而,白名单允许的许多文件类型——包括 shell 脚本、cron 任务定义和配置片段——在写入敏感的系统路径时可能造成严重危害。


概念验证

场景 1 — 通过 folder 参数中的路径遍历向 /tmp 任意写入文件

1. 登录 Joomla 管理面板并获取 CSRF 令牌

通过管理登录页面进行身份验证。从任意管理页面获取 Joomla CSRF 令牌——它以隐藏表单字段的形式出现,也可从页面源码中提取。

从管理面板提取 CSRF 令牌的 GET 请求

2. 在 folder 参数中携带路径遍历上传文件

向 POST /administrator/index.php?option=com_phocacommander&task=phocacommanderupload.multipleupload 发送一个 multipart POST 请求,在 file 字段中携带文件内容,并在 folder 字段中携带 base64 编码的遍历路径 Li4vLi4vLi4vdG1w(即 ../../../tmp)。服务器返回 HTTP 200 以及 {"jsonrpc":"2.0","result":"OK","code":200,"message":"Success: ","details":"Files uploaded"}。

请求 / 响应

带有遍历 folder 参数的 POST 上传请求及 200 OK 响应

3. 确认文件已写入 /tmp——Web 根目录之外

确认文件位于 /tmp/upload_test.txt,属主为 www-data,位于 /var/www/html/ 之外。

终端 ls -la /tmp 显示 upload_test.txt 属主为 www-data


影响

  1. 在 Web 根目录外任意写入文件 —— 任何 www-data 可写的路径都可以接收攻击者选择的内容,包括操作系统调度器、SSH 守护进程及其他服务使用的路径
  2. PHP-FPM 环境中的潜在 RCE —— 将包含 PHP 代码的 .txt 文件与 .user.ini(auto_prepend_file)一起上传到 Web 可访问目录,会在下一次请求该目录时触发 PHP 执行

参考链接

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-66492
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-66492
  • 厂商仓库: https://github.com/PhocaDesign/PhocaCommander
下载工具