CVE-2021-46080
Título del exploit: Vehicle Service Management System - 'Múltiple' Cross-Site Request Forgery (CSRF) conduce a Cross Site Scripting Almacenado (XSS)
Autor del exploit: SANU P.L
CVE: CVE-2021-46080
CVSS: 4.8 MEDIUM
Referencias:
Descripción:
Existe una vulnerabilidad de Cross Site Request Forgery (CSRF) en Vehicle Service Management System 1.0. Un ataque CSRF exitoso conduce a una vulnerabilidad de Cross Site Scripting Almacenado.
1. Vehicle Service Management System - 'Lista de Mecánicos' (/admin/?page=mechanics)
Exploit:
- Visite el panel de administración http://localhost/vehicle_service/admin
- Cree dos cuentas de administrador.
- Inicie sesión con la cuenta Admin-1 en el Navegador A (Chrome).
- Inicie sesión con la cuenta Admin-2 en el Navegador B (Firefox).
- En la cuenta Admin-1 (Chrome), navegue a la sección Lista de Mecánicos y haga clic en el botón Crear Nuevo.
- Inyecte el siguiente payload en el campo de entrada Nombre Completo.
Payload:
"><script>alert(document.cookie)</script>
- Haga clic en el botón Guardar.
- Capture la solicitud en burpsuite y genere el archivo HTML CSRF.
- Guarde el archivo HTML CSRF, por ejemplo: CSRF.html
- En el Navegador B (Firefox), abra el archivo CSRF.html.
- Navegue a la sección Lista de Mecánicos en el Navegador B (Firefox).
- Se activa el código JavaScript malicioso.
2. Vehicle Service Management System - 'Solicitudes de Servicio' (/admin/?page=service_requests)
Exploit:
- Visite el panel de administración http://localhost/vehicle_service/admin
- Cree dos cuentas de administrador.
- Inicie sesión con la cuenta Admin-1 en el Navegador A (Chrome).
- Inicie sesión con la cuenta Admin-2 en el Navegador B (Firefox).
- En la cuenta Admin-1 (Chrome), navegue a la sección Solicitudes de Servicio y haga clic en el botón Crear Nuevo.
- Inyecte el siguiente payload en el campo de entrada Contacto del Propietario.
Payload:
"><script>alert(document.cookie)</script>
- Haga clic en el botón Guardar Solicitud.
- Capture la solicitud en burpsuite y genere el archivo HTML CSRF.
- Guarde el archivo HTML CSRF, por ejemplo: CSRF.html
- En el Navegador B (Firefox), abra el archivo CSRF.html.
- Navegue a la sección Solicitudes de Servicio en el Navegador B (Firefox).
- Seleccione las Solicitudes de Servicio recién creadas y haga clic en Acción debajo de Ver.
- Se activa el código JavaScript malicioso.
3. Vehicle Service Management System - 'Lista de Categorías' (/admin/?page=maintenance/category)
Exploit:
- Visite el panel de administración http://localhost/vehicle_service/admin
- Cree dos cuentas de administrador.
- Inicie sesión con la cuenta Admin-1 en el Navegador A (Chrome).
- Inicie sesión con la cuenta Admin-2 en el Navegador B (Firefox).
- En la cuenta Admin-1 (Chrome), navegue a la sección Lista de Categorías y haga clic en el botón Crear Nuevo.
- Inyecte el siguiente payload en el campo de entrada Nombre de la Categoría.
Payload:
"><script>alert(document.cookie)</script>
- Haga clic en el botón Guardar.
- Capture la solicitud en burpsuite y genere el archivo HTML CSRF.
- Guarde el archivo HTML CSRF, por ejemplo: CSRF.html
- En el Navegador B (Firefox), abra el archivo CSRF.html.
- Navegue a la sección Lista de Categorías en el Navegador B (Firefox).
- Se activa el código JavaScript malicioso.
4. Vehicle Service Management System - 'Lista de Servicios' (/admin/?page=maintenance/services)
Exploit:
- Visite el panel de administración http://localhost/vehicle_service/admin
- Cree dos cuentas de administrador.
- Inicie sesión con la cuenta Admin-1 en el Navegador A (Chrome).
- Inicie sesión con la cuenta Admin-2 en el Navegador B (Firefox).
- En la cuenta Admin-1 (Chrome), navegue a la sección Lista de Servicios y haga clic en el botón Crear Nuevo.
- Inyecte el siguiente payload en el campo de entrada Nombre del Servicio.
Payload:
"><script>alert(document.cookie)</script>
- Haga clic en el botón Guardar.
- Capture la solicitud en burpsuite y genere el archivo HTML CSRF.
- Guarde el archivo HTML CSRF, por ejemplo: CSRF.html
- En el Navegador B (Firefox), abra el archivo CSRF.html.
- Navegue a la sección Lista de Servicios en el Navegador B (Firefox).
- Se activa el código JavaScript malicioso.
5. Vehicle Service Management System - 'Lista de Usuarios' (/admin/?page=user/list)
Exploit:
- Visite el panel de administración http://localhost/vehicle_service/admin
- Cree dos cuentas de administrador.
- Inicie sesión con la cuenta Admin-1 en el Navegador A (Chrome).
- Inicie sesión con la cuenta Admin-2 en el Navegador B (Firefox).
- En la cuenta Admin-1 (Chrome), navegue a la sección Lista de Usuarios y haga clic en el botón Crear Nuevo.
- Inyecte el siguiente payload en el campo de entrada Nombre.
Payload:
"><script>alert(document.cookie)</script>
- Haga clic en el botón Guardar.
- Capture la solicitud en burpsuite y genere el archivo HTML CSRF.
- Guarde el archivo HTML CSRF, por ejemplo: CSRF.html
- En el Navegador B (Firefox), abra el archivo CSRF.html.
- Navegue a la sección Lista de Usuarios en el Navegador B (Firefox).
- Se activa el código JavaScript malicioso.
6. Vehicle Service Management System - 'Configuración' (/admin/?page=system_info)
Exploit:
- Visite el panel de administración http://localhost/vehicle_service/admin
- Cree dos cuentas de administrador.
- Inicie sesión con la cuenta Admin-1 en el Navegador A (Chrome).
- Inicie sesión con la cuenta Admin-2 en el Navegador B (Firefox).
- En la cuenta Admin-1 (Chrome), navegue a la sección Configuración.
- Inyecte el siguiente payload en el campo de entrada Nombre del Sistema.
Payload:
"><script>alert(document.cookie)</script>
- Haga clic en el botón Actualizar.
- Capture la solicitud en burpsuite y genere el archivo HTML CSRF.
- Guarde el archivo HTML CSRF, por ejemplo: CSRF.html
- En el Navegador B (Firefox), abra el archivo CSRF.html.
- Navegue a la sección Configuración en el Navegador B (Firefox).
- Se activa el código JavaScript malicioso.
Impacto:
Existe una vulnerabilidad de Cross-Site Request Forgery en múltiples endpoints que conduce a una vulnerabilidad de Cross Site Scripting Almacenado.
Mitigación:
Se recomienda implementar lo siguiente:
- Impredecibles con alta entropía, como en el caso de los tokens de sesión en general.
- Vinculados a la sesión del usuario.
- Estrictamente validados en cada caso antes de ejecutar la acción correspondiente.