CVE-2021-46080
Título do Exploit: Vehicle Service Management System - 'Múltiplas' Cross-Site Request Forgery (CSRF) levam a Cross-Site Scripting (XSS) Armazenado
Autor do Exploit: SANU P.L
CVE: CVE-2021-46080
CVSS: 4.8 MÉDIO
Referências:
Descrição:
Existe uma vulnerabilidade de Cross-Site Request Forgery (CSRF) no Vehicle Service Management System 1.0. Um ataque CSRF bem-sucedido leva a uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado.
1. Vehicle Service Management System - 'Mechanic List' (/admin/?page=mechanics)
Exploit:
- Acesse o painel de administração http://localhost/vehicle_service/admin
- Crie duas contas de administrador.
- Faça login na conta Admin-1 no Navegador A (Chrome)
- Faça login na conta Admin-2 no Navegador B (Firefox)
- Na conta Admin-1 (Chrome), navegue até a seção 'Mechanic List' e clique no botão 'Create New'.
- Injete o payload abaixo no campo de entrada 'Full Name'.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão 'Save'.
- Capture a solicitação no burpsuite e gere o arquivo HTML de CSRF.
- Salve o arquivo HTML de CSRF, por exemplo: CSRF.html
- No Navegador B (Firefox), abra o arquivo CSRF.html.
- Navegue até a seção 'Mechanic List' no Navegador B (Firefox).
- O código JavaScript malicioso é acionado.
2. Vehicle Service Management System - 'Service Requests' (/admin/?page=service_requests)
Exploit:
- Acesse o painel de administração http://localhost/vehicle_service/admin
- Crie duas contas de administrador.
- Faça login na conta Admin-1 no Navegador A (Chrome)
- Faça login na conta Admin-2 no Navegador B (Firefox)
- Na conta Admin-1 (Chrome), navegue até a seção 'Service Requests' e clique no botão 'Create New'.
- Injete o payload abaixo no campo de entrada 'Owner Contact'.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão 'Save Request'.
- Capture a solicitação no burpsuite e gere o arquivo HTML de CSRF.
- Salve o arquivo HTML de CSRF, por exemplo: CSRF.html
- No Navegador B (Firefox), abra o arquivo CSRF.html.
- Navegue até a seção 'Service Requests' no Navegador B (Firefox).
- Escolha as solicitações de serviço recém-criadas e clique em 'Action' na coluna 'View'.
- O código JavaScript malicioso é acionado.
3. Vehicle Service Management System - 'Category List' (/admin/?page=maintenance/category)
Exploit:
- Acesse o painel de administração http://localhost/vehicle_service/admin
- Crie duas contas de administrador.
- Faça login na conta Admin-1 no Navegador A (Chrome)
- Faça login na conta Admin-2 no Navegador B (Firefox)
- Na conta Admin-1 (Chrome), navegue até a seção 'Category List' e clique no botão 'Create New'.
- Injete o payload abaixo no campo de entrada 'Category Name'.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão 'Save'.
- Capture a solicitação no burpsuite e gere o arquivo HTML de CSRF.
- Salve o arquivo HTML de CSRF, por exemplo: CSRF.html
- No Navegador B (Firefox), abra o arquivo CSRF.html.
- Navegue até a seção 'Category List' no Navegador B (Firefox).
- O código JavaScript malicioso é acionado.
4. Vehicle Service Management System - 'Service List' (/admin/?page=maintenance/services)
Exploit:
- Acesse o painel de administração http://localhost/vehicle_service/admin
- Crie duas contas de administrador.
- Faça login na conta Admin-1 no Navegador A (Chrome)
- Faça login na conta Admin-2 no Navegador B (Firefox)
- Na conta Admin-1 (Chrome), navegue até a seção 'Service List' e clique no botão 'Create New'.
- Injete o payload abaixo no campo de entrada 'Service Name'.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão 'Save'.
- Capture a solicitação no burpsuite e gere o arquivo HTML de CSRF.
- Salve o arquivo HTML de CSRF, por exemplo: CSRF.html
- No Navegador B (Firefox), abra o arquivo CSRF.html.
- Navegue até a seção 'Service List' no Navegador B (Firefox).
- O código JavaScript malicioso é acionado.
5. Vehicle Service Management System - 'User List' (/admin/?page=user/list)
Exploit:
- Acesse o painel de administração http://localhost/vehicle_service/admin
- Crie duas contas de administrador.
- Faça login na conta Admin-1 no Navegador A (Chrome)
- Faça login na conta Admin-2 no Navegador B (Firefox)
- Na conta Admin-1 (Chrome), navegue até a seção 'User List' e clique no botão 'Create New'.
- Injete o payload abaixo no campo de entrada 'First Name'.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão 'Save'.
- Capture a solicitação no burpsuite e gere o arquivo HTML de CSRF.
- Salve o arquivo HTML de CSRF, por exemplo: CSRF.html
- No Navegador B (Firefox), abra o arquivo CSRF.html.
- Navegue até a seção 'User List' no Navegador B (Firefox).
- O código JavaScript malicioso é acionado.
6. Vehicle Service Management System - 'Settings' (/admin/?page=system_info)
Exploit:
- Acesse o painel de administração http://localhost/vehicle_service/admin
- Crie duas contas de administrador.
- Faça login na conta Admin-1 no Navegador A (Chrome)
- Faça login na conta Admin-2 no Navegador B (Firefox)
- Na conta Admin-1 (Chrome), navegue até a seção 'Settings'.
- Injete o payload abaixo no campo de entrada 'System Name'.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão 'Update'.
- Capture a solicitação no burpsuite e gere o arquivo HTML de CSRF.
- Salve o arquivo HTML de CSRF, por exemplo: CSRF.html
- No Navegador B (Firefox), abra o arquivo CSRF.html.
- Navegue até a seção 'Settings' no Navegador B (Firefox).
- O código JavaScript malicioso é acionado.
Impacto:
Existe uma vulnerabilidade de Cross-Site Request Forgery em vários endpoints, que leva a uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado.
Mitigação:
Recomenda-se implementar o seguinte:
- Imprevisível e com alta entropia, como no caso dos tokens de sessão em geral.
- Vinculado à sessão do usuário.
- Estritamente validado em todos os casos antes que a ação relevante seja executada.