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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-16219-croogo-lab | Kitploit
工具/GitHubGitHub/hellboy3110/cve-2026-16219-croogo-lab
漏洞扫描器漏洞利用Web安全论文与研究学习与教育实验室与实践
GitHubhellboy3110/cve-2026-16219-croogo-lab

cve-2026-16219-croogo-lab

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-16219:Croogo FileManager 防御性实验室

Safety: loopback only PoC payload: text only

本仓库记录并安全地演示了 Croogo CMS 中编号为 CVE-2026-16219 的路径授权缺陷。它面向防御者、维护者、学生以及对自己拥有或获明确授权评估的系统进行测试的研究人员。

安全边界: 附带的 HTTP 概念验证仅接受字面回环地址 127.0.0.1,仅在固定的非 Web 目标目录 /tmp/croogo-cve-2026-16219/ 中写入一个生成的 .txt 标记文件,不跟随重定向,并且在没有明确实验室确认的情况下拒绝运行。它不包含可执行载荷,也没有远程目标模式。

状态快照

快照日期:2026-07-20。

字段值
产品Croogo CMS,管理员文件管理器
NVD 受影响版本4.0.0 至 4.0.7
弱点CWE-22,路径遍历 / 不当的路径限制
NVD CNA CVSS v3.16.3 中危
权限已认证且具备 FileManager 使用权限的账户
用户交互认证后无需用户交互
公开披露存在上游 issue 和公开的漏洞利用信息
已修补版本所引用的公告快照中未确认

当前状态可能会变化。在做出生产决策之前,请重新核对 docs/references.md 中的主要来源。

问题所在

Croogo 配置了一个受限的可编辑根目录,例如 WWW_ROOT/assets。受影响的 Helper 通过 Configure::check() 而非 Configure::read() 获取 FileManager.editablePaths。check() 仅回答键是否存在,并不返回配置的路径列表。随后,路径包含检查使用了该布尔值,从而破坏了预期的授权边界。

文件管理器的创建和编辑操作信任该检查。在上游报告所述的条件下,当 PHP 服务账户对所选位置具有写权限时,已认证的 FileManager 用户可以在配置的可编辑根目录之外写入文件。

数据流参见 docs/technical-analysis.md,加固指南参见 docs/remediation.md。

仓库内容

root@kitploit:~
.
|-- demo/                         Standalone logic demonstration; no Croogo required
|-- docs/                         Analysis, lab setup, detection, remediation, references
|-- patches/                      Illustrative defense-in-depth patch
|-- poc/                          Strictly loopback, text-marker HTTP PoC and cleanup tools
|-- tests/                        Guardrail and demo tests
|-- .github/workflows/validate.yml
|-- DISCLAIMER.md
|-- GITHUB_UPLOAD.md
|-- LICENSE
|-- Makefile
|-- SECURITY.md
`-- VERSION

最快且安全的演示

独立模型无需运行易受攻击的 CMS 或发送任何网络请求即可解释该缺陷:

root@kitploit:~
php demo/path_authorization_demo.php

预期结果:

root@kitploit:~
Buggy modeled check for outside path: ALLOWED
Safe boundary check for outside path: DENIED

该演示会在操作系统临时目录下创建临时文件,并在退出前将其删除。

本地 Croogo 实验室 PoC

1. 准备隔离的实验室

按照 docs/lab-setup.md 操作。将应用仅绑定到 127.0.0.1,并在与 Croogo 相同的虚拟机或容器内创建固定的标记目录:

root@kitploit:~
sudo install -d -o www-data -g www-data -m 0750 \
  /tmp/croogo-cve-2026-16219

在一次性实验室中,将 www-data 替换为 PHP-FPM 或 Web 服务器账户。

2. 导出仅限实验室使用的认证值

从你自己实验室中的一次合法文件管理器请求中获取完整的 Cookie 头和 CakePHP CSRF 令牌。切勿将它们提交到版本库。

root@kitploit:~
export BASE='http://127.0.0.1:8080'
export COOKIE='CAKEPHP=lab-session; csrfToken=lab-cookie-token'
export CSRF_TOKEN='lab-request-token'
export LAB_ACK='I_OWN_THIS_LAB'

3. 在不发送请求的情况下验证防护机制

root@kitploit:~
POC_VALIDATE_ONLY=1 ./poc/croogo_local_poc.sh

4. 发送文本标记请求

root@kitploit:~
./poc/croogo_local_poc.sh

脚本会打印生成的文件名和 HTTP 状态。HTTP 重定向或成功响应本身并不能证明漏洞;请从 Croogo 虚拟机或容器内部验证标记文件:

root@kitploit:~
sudo ./poc/verify_marker.sh

位于 WWW_ROOT/assets 之外的标记文件即证明授权失败。该标记是纯文本,无法通过 Web 执行。

5. 清理

root@kitploit:~
sudo LAB_ACK='I_OWN_THIS_LAB' ./poc/cleanup_marker.sh
unset COOKIE CSRF_TOKEN LAB_ACK BASE

测试本仓库

root@kitploit:~
make test

测试用于确认 shell 语法正确、拒绝非回环和 URL 混淆输入、确保验证过程中不打印机密信息,并验证独立模型的预期结果。

修复优先级

  1. 在部署经过测试的修复之前,禁用管理员文件管理器,或将其限制为一组最少的受信任管理员。
  2. 改用 Configure::read() 来正确获取配置。
  3. 对允许的根目录和候选目录均进行规范化,然后执行感知路径分隔符的包含检查。
  4. 拒绝提交的文件名中的路径分隔符、NUL 字节和不安全名称。
  5. 阻止 PHP 向应用源代码和可执行 webroot 位置写入。
  6. 使用 docs/detection.md 审查日志和可写位置。

patches/illustrative-hardening.patch 中的实用补丁和 patches/create-file-hardening-example.md 中的控制器指引是审查辅助材料,并非官方供应商修复。请针对实际部署的分支对其进行测试。

道德使用

请仅在自己拥有或已获得明确书面授权测试的系统上使用本仓库。不要将 PoC 改造用于公共目标、可执行载荷、持久化、凭据访问或破坏性行为。参见 SECURITY.md 和 DISCLAIMER.md。

许可证

MIT。参见 LICENSE。

下载工具