## 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.