Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1310 CNY

100%

CVE-2023-4226 PoC — Chamilo LMS File Upload Functionality Remote Code Execution

Source
Associated Vulnerability
Title:Chamilo LMS File Upload Functionality Remote Code Execution (CVE-2023-4226)
Description:Unrestricted file upload in `/main/inc/ajax/work.ajax.php` in Chamilo LMS <= v1.11.24 allows authenticated attackers with learner role to obtain remote code execution via uploading of PHP files.
Description
Vulnerabilidad de carga de archivos sin restricciones en **Chamilo LMS** (<= v1.11.24).
Readme
# 🛠️ 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
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →