Sploitus

Exploit for CVE-2025-2304-CamaleonCMS-PoC

kitploit · 2026-08-26

Exploit Code

MARKDOWN77 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-7ACINI-CVE-2025-2304-CAMALEONCMS-POC
# PoC: CVE-2025-2304 - Escalation dei Privilegi in Camaleon CMS

## Panoramica Tecnica

Questo repository contiene un Proof of Concept (PoC) funzionale per una vulnerabilitĂ  di **Mass Assignment** in **Camaleon CMS** (versioni precedenti alla 2.8.1). La vulnerabilitĂ  risiede nell'endpoint `updated_ajax` del modulo di Gestione Utenti, dove l'applicazione non filtra rigorosamente gli attributi sensibili all'interno dell'hash del parametro `password`.

Iniettando un attributo `role` nell'ambito di `password` durante un aggiornamento del profilo, un utente con privilegi bassi può sovrascrivere i propri permessi per ottenere lo stato `admin`.

### Meccanismo della VulnerabilitĂ 

La vulnerabilità è radicata in una configurazione errata dei **Strong Parameters** nel controller Ruby on Rails. Quando l'applicazione elabora la richiesta di aggiornamento AJAX, permette impropriamente che la chiave `role` venga unita agli attributi dell'oggetto utente:

  * **Endpoint Vulnerabile:** `/admin/users/:id/updated_ajax`
  * **Ambito del Parametro Vulnerabile:** `password[...]`
  * **Vettore di Iniezione:** `password[role]=admin`



* * *

## Caratteristiche Tecniche

  * **Persistenza della Sessione:** Utilizza `requests.Session` per mantenere lo stato tra le fasi di autenticazione e sfruttamento.
  * **Sincronizzazione Automatica del CSRF:** Estrae l'`authenticity_token` dal DOM e lo sincronizza con l'intestazione `X-CSRF-Token`, soddisfacendo i requisiti di sicurezza AJAX di Rails.
  * **Scoperta Dinamica dell'ID:** Analizza la pagina `/admin/profile/edit` per risolvere dinamicamente `user[id]` richiesto per l'endpoint RESTful.
  * **Emulazione del Metodo HTTP:** Implementa l'override `_method=patch` per soddisfare i requisiti di routing dell'applicazione per gli aggiornamenti delle risorse tramite `POST`.



* * *

## Requisiti

  * Python 3.10+
  * `requests`
  * `beautifulsoup4`



Installa le dipendenze:

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

* * *

## Utilizzo

root@kitploit:~
    
    
    python3 main.py -u <target_url> --user <username> --password <password>
    

### Flusso di Esecuzione dell'Exploit

  1. **Autenticazione (POST`/admin/login`):** Stabilisce una sessione autenticata utilizzando `user[username]`.
  2. **Ricognizione (GET`/admin/profile/edit`):** Estrae l'unico `user[id]` e un nuovo `authenticity_token`.
  3. **Escalation (PATCH-over-POST`/admin/users/:id/updated_ajax`):** Invia il payload di iniezione.



* * *

## Specifiche del Payload

L'exploit utilizza un payload `application/x-www-form-urlencoded` strutturato come segue:

* * *

## Divulgazione Etica

Questo strumento è destinato solo a scopi educativi e a test di penetrazione autorizzati. L'accesso non autorizzato a sistemi di produzione è illegale.