CVE-2021-46080
Título do Exploit: Vehicle Service Management System - 'Múltiplas' Falsificação de Solicitação entre Sites (CSRF) Leva a Script entre Sites Armazenado (XSS)
Autor do Exploit: SANU P.L
CVE: CVE-2021-46080
CVSS: 4.8 MEDIUM
Referências:
Descrição:
Uma vulnerabilidade de Falsificação de Solicitação entre Sites (CSRF) existe no Vehicle Service Management System 1.0. Um ataque CSRF bem-sucedido leva a uma vulnerabilidade de Script entre Sites Armazenado.
1. Vehicle Service Management System - 'Lista de Mecânicos' (/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 Lista de Mecânicos e clique no botão Criar Novo.
- Injete o payload abaixo no campo de entrada Nome Completo.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão Salvar.
- Capture a solicitação no burpsuite e gere o arquivo CSRF Html.
- Salve o arquivo CSRF Html, por exemplo: CSRF.html
- No Navegador B (Firefox), acesse o arquivo CSRF.html.
- Navegue até a seção Lista de Mecânicos no Navegador B (Firefox).
- Código javascript malicioso acionado.
2. Vehicle Service Management System - 'Solicitações de Serviço' (/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 Solicitações de Serviço e clique no botão Criar Novo.
- Injete o payload abaixo no campo de entrada Contato do Proprietário.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão Salvar Solicitação.
- Capture a solicitação no burpsuite e gere o arquivo CSRF Html.
- Salve o arquivo CSRF Html, por exemplo: CSRF.html
- No Navegador B (Firefox), acesse o arquivo CSRF.html.
- Navegue até a seção Solicitações de Serviço no Navegador B (Firefox).
- Escolha a nova Solicitação de Serviço criada e clique em Ação em Visualizar.
- Código javascript malicioso acionado.
3. Vehicle Service Management System - 'Lista de Categorias' (/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 Lista de Categorias e clique no botão Criar Novo.
- Injete o payload abaixo no campo de entrada Nome da Categoria.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão Salvar.
- Capture a solicitação no burpsuite e gere o arquivo CSRF Html.
- Salve o arquivo CSRF Html, por exemplo: CSRF.html
- No Navegador B (Firefox), acesse o arquivo CSRF.html.
- Navegue até a seção Lista de Categorias no Navegador B (Firefox).
- Código javascript malicioso acionado.
4. Vehicle Service Management System - 'Lista de Serviços' (/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 Lista de Serviços e clique no botão Criar Novo.
- Injete o payload abaixo no campo de entrada Nome do Serviço.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão Salvar.
- Capture a solicitação no burpsuite e gere o arquivo CSRF Html.
- Salve o arquivo CSRF Html, por exemplo: CSRF.html
- No Navegador B (Firefox), acesse o arquivo CSRF.html.
- Navegue até a seção Lista de Serviços no Navegador B (Firefox).
- Código javascript malicioso acionado.
5. Vehicle Service Management System - 'Lista de Usuários' (/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 Lista de Usuários e clique no botão Criar Novo.
- Injete o payload abaixo no campo de entrada Primeiro Nome.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão Salvar.
- Capture a solicitação no burpsuite e gere o arquivo CSRF Html.
- Salve o arquivo CSRF Html, por exemplo: CSRF.html
- No Navegador B (Firefox), acesse o arquivo CSRF.html.
- Navegue até a seção Lista de Usuários no Navegador B (Firefox).
- Código javascript malicioso acionado.
6. Vehicle Service Management System - 'Configurações' (/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 Configurações.
- Injete o payload abaixo no campo de entrada Nome do Sistema.
Payload:
"><script>alert(document.cookie)</script>
- Clique no botão Atualizar.
- Capture a solicitação no burpsuite e gere o arquivo CSRF Html.
- Salve o arquivo CSRF Html, por exemplo: CSRF.html
- No Navegador B (Firefox), acesse o arquivo CSRF.html.
- Navegue até a seção Configurações no Navegador B (Firefox).
- Código javascript malicioso acionado.
Impacto:
A vulnerabilidade de Falsificação de Solicitação entre Sites existe em vários endpoints, o que leva a uma vulnerabilidade de Script entre Sites Armazenado.
Mitigação:
Recomenda-se implementar o seguinte:
- Imprevisível com alta entropia, como para tokens de sessão em geral.
- Vinculado à sessão do usuário.
- Estritamente validado em todos os casos antes da execução da ação relevante.