Versão Vulnerável: Sistema de Gestão Hospitalar 1.0
Descrição da Vulnerabilidade
Cross-Site Scripting (XSS) Armazenado é uma vulnerabilidade web grave que permite a injeção de código malicioso em um site, armazenamento no banco de dados e posterior execução quando outros usuários visualizam a página infectada. Neste caso específico, a vulnerabilidade é encontrada na página de login do usuário de um Sistema de Gestão Hospitalar (HMS), onde o parâmetro "Fullname" é suscetível a ataques de XSS armazenado. A falta de validação adequada de entrada e sanitização de dados permite que um atacante injete scripts maliciosos, potencialmente comprometendo contas de usuários, roubando informações sensíveis ou realizando ações não autorizadas.
Passos para Reproduzir (PoC)
Clonar o Repositório:
root@kitploit:~
git clone https://github.com/sharathc213/CVE-2023-7172.git
cd CVE-2023-7172
Executar o Docker Compose:
root@kitploit:~
docker-compose up -d
Acessar o Formulário de Registro do Usuário:
Abra um navegador web e navegue até o formulário de registro do usuário em http://localhost:8080/hms/registration.php
Preencha os outros campos obrigatórios com informações válidas.
Enviar o Formulário de Registro:
Clique no botão "Submit" para enviar os dados de registro ao servidor.
Verificar o Registro Bem-Sucedido:
Receba uma mensagem de confirmação de registro bem-sucedido.
Fazer Login com o E-mail Registrado:
Navegue até a página de login em http://localhost:8080/hms/user-login.php.
Inserir o E-mail Registrado:
No formulário de login, insira o endereço de e-mail usado no registro.
Fazer Login:
Envie o formulário de login clicando no botão "Log In".
Observando o Payload XSS:
Após o login bem-sucedido, o payload XSS deve acionar uma caixa de alerta exibindo os cookies do usuário, indicando a existência da vulnerabilidade de XSS armazenado.
Impacto do XSS Armazenado em um Sistema de Gestão Hospitalar
Uma vulnerabilidade de XSS Armazenado em um Sistema de Gestão Hospitalar pode ter consequências graves, incluindo:
Exposição de Dados do Paciente:
Roubo potencial de dados sensíveis do paciente para roubo de identidade ou fraude.
Riscos à Segurança do Paciente:
Alterações não autorizadas nos registros do paciente podem comprometer a segurança do paciente.
Ações Não Autorizadas:
O atacante poderia executar ações em nome dos usuários, levando a acesso não autorizado e possível uso indevido.
Erosão da Confiança:
Danos à reputação da instituição de saúde devido à quebra de confiança.
Não Conformidade Regulatória:
Violação de regulamentos de proteção de dados, resultando em multas e consequências legais.
Interrupção dos Serviços de Saúde:
Possíveis interrupções no atendimento ao paciente, erros de prescrição ou diagnósticos incorretos com graves implicações para a saúde.
Implicações Legais e Éticas:
Responsabilidade legal por qualquer dano causado, juntamente com preocupações éticas sobre a privacidade do paciente.
Consequências Financeiras:
Custos associados à correção da violação, incluindo investigações, atualizações de sistemas e despesas legais.
Recomendações de Mitigação
Para resolver esta vulnerabilidade, implemente as seguintes medidas de mitigação:
Validação e Sanitização de Entrada:
Implemente rotinas rigorosas de validação de entrada e sanitização de dados para garantir que o conteúdo gerado pelo usuário esteja livre de código malicioso. Isso inclui validar dados tanto no lado do cliente quanto no lado do servidor.
Aviso Legal
Este projeto é intencionalmente vulnerável e deve ser usado apenas para fins educacionais e de teste. Não implante isso em um ambiente de produção.