SQL Injection no IDCE MV
Crédito da capa: Portswigger

SQL Injection no IDCE MV

Olá!

Neste artigo eu comprovo a falha de SQL Injection no software de gestão de saúde IDCE da empresa MV Informática para a base do CVE-2022-30496.

Embora o software seja de uma versão antiga, lançada há alguns anos atrás, algumas empresas brasileiras de saúde ainda o utilizam em larga escala. A maioria das empresas o tem rodando apenas em redes locais ou protegidos por VPN. Porém ainda é possível encontrar este software vulnerável sendo utilizado abertamente através da internet e sem nenhuma proteção extra.

Aproveito para informar que a ação de coletar informações de serviços não é caracterizado crime, uma vez que foi utilizado um ambiente controlado de teste e nenhuma informação privada foi revelada. Esta matéria tem como fins apresentar os métodos utilizados por hackers para encontrar informações de empresas e apresentar aos desenvolvedores as falhas de segurança que suas aplicações web (portais, sites de atendimento, etc) possuem. Corrigir ou não é uma decisão dos desenvolvedores e gestores/clientes destas aplicações.

Por Iran Macedo, especialista em proteção de dados e segurança ofensiva / Pentest.

A falha de SQLi

O software testado foi o IDCE - MV Medicina Diagnóstica. Este software é utilizado por hospitais e seus médicos para gerarem laudos de exames médicos de pacientes. Mas não somente isso, pois pode controlar fluxo de pagamentos, gerenciar usuários, suas informações e permissões, dados de parceiros, de fornecedores e de clientes (pacientes) e outros serviços gerenciais relativos aos hospitais e clínicas.

Não foi fornecido texto alternativo para esta imagem

Realizando o teste mais básico de SQL Injection, não conseguimos nada. Por exemplo, ao adicionar uma aspas simples ' no campo usuário, temos a resposta "Usuário e/ou Senha inválidos!", o que parece ser um bom sinal, uma vez que a aplicação parece tratar a entrada enviada pelo usuário antes de envia-la ao banco de dados.

Não foi fornecido texto alternativo para esta imagem

Time-Based Blind injection

Para iniciar meus testes, fiz o envio de um usuário e senha inválidos, interceptei pelo Burp, copiei os dados de requisição e salvei num arquivo TXT, que foi utilizado pelo SQLMap como base da requisição através do parâmetro "-r".

Num teste anterior em um outro produto do desenvolvedor MV, vimos que o banco de dados utilizado era um Oracle. Desta forma as chances do desenvolvedor utilizar na epoca o Oracle como a solução de banco de dados para todas as suas aplicações é grande. Partindo deste princípio, configurei o meu SQLMap para testar todas os possíveis ataques (level 5 e risk 3) somente para banco Oracle nesta aplicação. Isso reduz a quantidade e o tempo de execução dos testes.

Como resultado, o campo testado (Usuário) pareceu ser vulnerável a um ataque de SQL Injection em Oracle e Time-Based Blind.

Não foi fornecido texto alternativo para esta imagem

Ao final dos testes o SQLMap trouxe a confirmação da falha de segurança da aplicação, evidenciando o banco de dados encontrado (Oracle), a versão e o sistema operacional do servidor do banco de dados (Windows 2008 R2) e outras informações. Isto já é suficiente para comprovar a falha de segurança na aplicação.

Não foi fornecido texto alternativo para esta imagem

Para ser mais conclusivo, outros dados não sensíveis foram capturados, como por exemplo o usuário utilizado pelo banco de dados e a base atualmente acessada.

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

E, para evidenciar que seria possível acessar todas as informações dentro desta base, pegamos os nomes das colunas de uma dada tabela utilizada pela aplicação IDCE.

Não foi fornecido texto alternativo para esta imagem

Estas evidências são suficientes para comprovar a falha de segurança da aplicação, que acaba expondo as informações dentro do seu banco de dados.

Por ser um falha baseada em tempo de resposta às cegas (Time-Based Blind), este tipo de ataque pode levar muito tempo para ser executado.

Correção da falha (informação atualizada)

Conversando por vídeo conferência com o desenvolvedor em maio de 2020 e em junho de 2022, fui informado de que a MV Informática corrigiu as falhas apresentadas nesta versão testada. Desta forma, é recomendado que a solução de medicina diagnóstica IDCE seja utilizada sempre de forma atualizada. Infelizmente algumas empresas ainda utilizam versões desatualizadas e vulneráveis.

Conclusão

Mantenha o seu software atualizado e sempre utilize as versões mais atuais e estáveis. Utilizar softwares piratas pode parecer como uma solução viável e barata para quem não quer gastar dinheiro pagando por programas licenciados. Mas lembre-se de que isto não é legal (no termo jurídico da palavra), além de não ter as atualizações necessárias para mantê-lo seguro. O "barato" pode acabar saindo muito, mas muito mais caro do que pagar por softwares licenciados. Visto que uma multa aplicada por processos judiciais de clientes afetados através da LGPD não é nada barato, sem dizer dos riscos de se ter o banco de dados principal invadido.

Mantenha-se seguro e um grande abraço!

Documentação formal do CVE na Mitre: MeuGithub

CVE ID: CVE-2022-30496.

To view or add a comment, sign in

More articles by Iran Macedo

  • Cyber Kill Chain no Pentest

    Cyber Kill Chain no Pentest

    Pós-exploração: Fazer ou não fazer? Eis a questão. Olá! Quando estamos estudando pentest nas academias e cursinhos, ou…

    7 Comments
  • Armazenamento inseguro no IDCE MV

    Armazenamento inseguro no IDCE MV

    Olá! Neste artigo eu abordo a falha de armazenamento inseguro de senhas de acesso no software de gestão de saúde IDCE…

  • Como reportar uma CVE na Mitre?

    Como reportar uma CVE na Mitre?

    Vamos falar um pouco sobre CVE? Olá! A ideia aqui é bater um papo sobre como reportar uma falha de segurança para a…

    5 Comments
  • Como tirei a certificação eWPT (review)

    Como tirei a certificação eWPT (review)

    Olá! Como vai? Bem, vou escrever aqui um pouco sobre como foi a minha experiência com a certificação eWPT…

    15 Comments
  • Treinamentos para iniciantes em Pentest (Ethical Hacking)

    Treinamentos para iniciantes em Pentest (Ethical Hacking)

    Olá! Tio Iran na área novamente. Atualmente eu lidero uma equipe de jovens pentesters em uma empresa fantástica de…

    43 Comments
  • Como se tornar um Pentester profissional

    Como se tornar um Pentester profissional

    Fala, meus jovens! Tudo tranquilo? Frequentemente jovens profissionais promissores entram em contato comigo aqui pelo…

    13 Comments
  • mConnect MV - SQL Injection

    mConnect MV - SQL Injection

    Olá! Continuando os tópicos de exploração da descontinuada aplicação mConnect do desenvolvedor MV (www.mv.

  • mConnect MV - Descobrindo usuários válidos

    mConnect MV - Descobrindo usuários válidos

    Olá! Continuando no assunto de Brute Force, abordarei um dos métodos que podemos utilizar para descobrir os usuários…

  • Entendendo um Brute Force

    Entendendo um Brute Force

    Olá! Hoje falarei um pouco sobre ataques de força bruta. Porém, apenas citarei métodos e ferramentas para tais ataques,…

  • Principais erros no gerenciamento do backup

    Principais erros no gerenciamento do backup

    Trecho do livro “Backup, a última linha de segurança”. Por Iran Macedo em 29/12/2019.

    2 Comments

Others also viewed

Explore topics