Share
## https://sploitus.com/exploit?id=8D228377-84F0-59B5-A232-5A6F9C9A00E1
# 🛠️ Explotación CVE-2023-4226 para Chamilo LMS

## 📋 Descripción

Script en Python que automatiza la explotación de **CVE-2023-4226**, una vulnerabilidad de carga de archivos sin restricciones en **Chamilo LMS** (<= v1.11.24). Sube un web shell PHP basado en PentesterMonkey y configura `.htaccess` para lograr una **reverse shell**. Más detalles: [Advisory de STAR Labs](https://starlabs.sg/advisories/23/23-4226/).

## 🔍 Vulnerabilidad

-   **Producto**: Chamilo LMS
-   **Severidad**: Alta (CVSS 3.1: 8.8)
-   **Versiones Afectadas**: <= v1.11.24
-   **Descripción**: Usuarios con rol de aprendiz pueden subir archivos PHP en `/main/inc/ajax/work.ajax.php`, logrando RCE.
-   **CWE**: CWE-434 (Carga de Archivos Peligrosos)


## 🚀 Funcionalidad

1.  **Solicita**:
    -   URL del objetivo.
    -   Cookie de sesión (`ch_sid`).
    -   IP y puerto del atacante para la reverse shell.
2.  **Modifica** `rce.php` con IP y puerto.
3.  **Ejecuta**:
    -   GET a `/main/work/work.php?cidReq=HW`.
    -   POST a `/main/inc/ajax/work.ajax.php` para subir `rce.php` y `.htaccess`.
4.  **Muestra** la URL del web shell (`/app/cache/rce.php`).

## 📦 Requisitos

-   **Python**: `requests`, `colorama`.
    
    ```bash
    pip install requests colorama
    
    ```
    
-   **Archivos**: `rce.php` (PentesterMonkey, incluido en el repositorio), `.htaccess` (generado por el script).
-   **Red**: IP y puerto para el listener (ej. `nc -lvnp 4444`).


## 🛠️ Uso

1.  Clona el repositorio:
    
    ```bash
    git clone https://github.com/SkyW4r33x/CVE-2023-4226
    cd CVE-2023-4226    
    ```
    
2.  Asigna permisos de ejecución al script:
    
    ```bash
    chmod +x CVE-2023-4226.py    
    ```
    
3.  Instala dependencias:
    
    ```bash
    pip install requests colorama    
    ```
    
4.  Inicia el listener en una terminal:
    
    ```bash
    nc -lvnp 4444    
    ```
    
5.  Ejecuta el script:
    
    ```bash
    ./CVE-2023-4226.py    
    ```
    
6.  Ingresa:
    -   URL del Chamilo.
    -   Cookie `ch_sid`.
    -   IP y puerto del listener.
7.  Accede al web shell para iniciar la reverse shell:
    
    ```
    http://<chamilo>/app/cache/rce.php    
    ```
    
    Ejemplo: `http://chamilo.local/app/cache/rce.php`

## 🛡️ Mitigaciones

-   Actualiza a **Chamilo >= v1.11.26**.
-   Sanitiza nombres de archivos.
-   Bloquea HTML en `disable_dangerous_file()`.
-   Agrega a `.htaccess`:
    
    ```apache
    RedirectMatch 403 ^/main/inc/lib/javascript/bigupload/files
    Header set X-Content-Type-Options nosniff    
    ```
   
## ⚠️ Aviso Legal

Uso exclusivo para **pruebas autorizadas**. El uso no autorizado es **ilegal**.


## 🙌 Créditos

-   **Vulnerabilidad**: Ngo Wei Lin (@Creastery), STAR Labs.
-   **Script**: SkyW4r33x