quinta-feira, 30 de novembro de 2006

Resposta do Miau

Finalmente obtive resposta do miau em relação às vulnerabilidades no site, pediram-me que retirasse do site a informação enquanto resolvem o problema, vou faze-lo de modo a proteger os utilizadores do site, quando tudo estiver resolvido volto a coloca-lo.

segunda-feira, 27 de novembro de 2006

Episodio 1 - Quando o gato torce o rabo (2 falhas graves + várias menores)

Há aquelas altura que um gajo quer comprar ou vender cenas que já não precisa, à falta de um ebay nacional temos o http://www.miau.pt, este site devido a sua importância, número de utilizadores, e tempo de existência, foi escolhido para minha primeira cobaia deste projecto.
Foram encontradas por mim 2 vulnerabilidades graves no miau, e várias com importancia relativa, procedi ao contacto para aviso das mesmas de modo a dar a protecção necessária os utilizadores do respectivo site, a resposta por parte dos responsáveis foi nula

------------------------------------------------------------------------------------------------------------------------------
From: MiauDirecto
To:
Date: Wed, 29 Nov 2006 09:14:33 +0000

This message is not encrypted, and is not digitally signed by . Invite info@miau.pt to join Hushmail!
Warning: This message may be forged. The return path (filipa.magalhaes@miau.pt) does not match the from address.
Your message

To: info@miau.pt
Cc:
Subject: Falhas de segurança graves no miau
Sent: Tue, 28 Nov 2006 00:49:05 -0000

was deleted without being read on Wed, 29 Nov 2006 09:14:33 -0000

--------------------------------------------------------------------------------------------------------------------------------

Tal situação revela-se grave, porque demonstra além da má qualidade de segurança do código (tendo em conta que é um site de informações sensiveis) uma total ausência de responsabilidade perante aqueles que lhes confiam os seus dados pessoais e os seus negócios.
Mas vamos passar à parte técnica do assunto :

Vulnerabilidade 1 GRAVE (miaupt01 remoção de qualquer ficheiro no sistema)

O miau dá a possibilidades aos seus utilizadores de terem nos leilões imagens descritivas dos objectos em venda, é possível ao utilizador e a qualquer altura do leilão remover ou adicionar imagens.
Foi encontrada uma falha no script responsável pela remoção de imagens (http://www.miau.pt/conta_pessoal/imagens/remover.jsp), devido à falta de filtragem (caso típico de confiança no "user input") é possível utilizar o mesmo para apagar qualquer ficheiro no servidor desde que o mesmo seja acessível às permissões com que a aplicação web corre. É possível assim apagar por exemplo as imagens de qualquer leilão, ou ficheiros temporários de sessão que existem no servidor.
Para provar que tal problema existe foi feito um exploit que consiste numa pequena html form que permite apagar qualquer imagem de qualquer leilão, está disponível aqui para download.
Usar esta form é bastante simples, basta criar uma conta no miau, efectuar o login (para que tenhamos uma sessão identificada lá) depois preencher a form com os dados necessários para apagar a imagem que se quer, são eles:

BASEIMAGENAME - O nome base da imagem basta com o browser ver as propriedades da mesma será algo do genero 999371_1166248625726_0.jpg portanto o basename id é 999371_1166248625726.

OFFER ID - A id do leilão basta olhar para barra de navegação e terá algo como http://www.miau.pt/leiloes/leilao.jsp?offer_id=277834089, portanto o id é 277834089.

TITLE - O titulo do leilão.

FILE - O nome completo da imagem já visto na baseimagename que é 999371_1166248625726_0.jpg.




As possibilidades dadas por esta vulnerabilidade são várias depende da imaginação de qualquer um, se por exemplo o remove for feito atravez de uma exec() call à sh e tiver mal filtrado, basta provavelmente prencher no campo "FILE" da form algo do género :
"xpto.jpg | w ; id ; /sbin/ifconfig > / miau/app/source/jsp/images/Offers/result.txt"


Vulnerabilidade 2 GRAVE (Uso de passwords em plaintext e má implementação do sistema de conexões seguras SSL)


O uso de métodos de protecção de login são essenciais em qualquer site desta natureza, pois permitem que o tráfego "sensível" navegue com mais segurança, são usados habitualmente 2 métodos para proteger tal situações o miau não implementa nenhum deles correctamente :

a) Uso de passwords sobre forma encriptada - Permite que haja uma protecção da password, ou seja a password nunca é guardada no servidor na sua forma original, em vez disso é criada uma hash da mesma, isto vai permitir entre outros que caso haja uma violação da segurança do servidor as passwords dos utilizadores sejam mais difíceis de obter, no miau as passwords são guardadas em plaintext na base de dados.

b) Uso de SSL - Devido ao facto de o miau conter várias informações importantes, dados do sistema de pagamento bancário dos leilões via multibanco, nomes e moradas, é imperativo que seja usado um sistema de tráfego seguro como o ssl pelo menos na altura de efectuar login, embora o miau forneça suporte de ssl a form de login http não o usa tal situação é completamente absurda e não protege os interesses dos utilizadores. Além disto quando se selecciona a página http://www.miau.pt/conta_pessoal/os_meus_dados.jsp e "Alterar" a mesma devolve sobre forma oculta (input type=hidden) e em plaintext a password do utilizador.

Se a primeira vulnerabilidade parte de um erro do programador, estas 2 ultimas são pura falta de profissionalismo, é incrível que 1 site desta envergadura e com sistema de pagamentos online tenha uma segurança tão precária.

Vulnerabilidades Várias

Não é difícil provocar no site comportamentos anómalos como crashes dos scripts, revelação de paths, etc. Não sendo estes problemas tão graves são sempre de evitar pois demonstram informação sobre o site e os seus componentes, exemplo:

Fazendo um http request a http://www.miau.pt/naoexiste.jsp ficamos a saber que o mesmo corre o JRUN da macromedia.
O servidor deve ser configurado para mostrar o mínimo de informação sensível possível.


Conclusão

É minha opinião pessoal e tendo em conta as 3 horas que passei de volta do site que o mesmo não se encontra minimamente seguro para desempenhar as funções a que se destina, o miau é um site bastante divulgado e lida directamente com métodos de pagamento, devia ter em especial atenção a segurança dos seus utilizadores, tal não acontece, o site encontra-se altamente vulnerável é só alguém "querer" e....