Skip to content

allgood/WhaticketWebsocketExploit

Repository files navigation

Whaticket Websocket Exploit

by Claudemir Todo Bom - 2024-Feb-20

en pt-br

Motivação

Nas últimas semanas detectei o que julguei serem falhas gravíssimas no sistema Whaticket e seus derivados.

O autor do projeto original deixa claro que ele não teve uma atenção à segurança da aplicação, recomendando que fosse utilizado apenas em ambientes de rede local. Porém existem várias versões derivadas, principalmente com o objetivo de fornecimento no modelo Software como Serviço (SaaS) que acabaram por replicar essas falhas.

São duas falhas:

O backend não valida credenciais na conexão websocket e fornece acesso a qualquer um que se conecta.

O backend envia mensagens via websocket que não são destinadas ao usuário logado. Esse problema pode ser confirmado através da console do navegador onde é possível observar toda a troca de mensagens, status, contatos que ocorre entre todos os usuários do mesmo sistema, apenas observando o websocket aberto pelo componente das notificações.

Essas duas falhas em conjunto expõem toda a comunicação que passa pelo servidor para qualquer pessoa que tentar conectar no websocket.

Como o exploit funciona

Basicamente ele se conecta ao websocket do servidor sem fornecer nenhuma credencial e passa a mostrar as mensagens recebidas.

Para funcionar o servidor precisa possuir um usuário com o ID 1, que é o padrão para o usuário administrador.

USE APENAS PARA TESTAR SEU PRÓPRIO SERVIDOR OU ALGUM SERVIDOR AO QUAL VOCÊ TENHA PERMISSÃO. EU NÃO SOU RESPONSÁVEL PELO QUE VOCÊ FIZER COM ESTA FERRAMENTA.

Instruções

Você vai precisar do nodejs instalado em seu computador.

Tendo ele instalado, abra um terminal e navegue até a pasta em que este exploit está instalado. Inicialmente você vai precisar instalar as dependências do script:

npm install

Depois você pode executar ele:

npm start

Ele vai solicitar a URL do backend. Ela precisa iniciar com wss:// ou ws://, depois de clicar em "Analize" ele vai conectar ao websocket do servidor e iniciar a analisar. Se o servidor estiver vulnerável você verá as mensagens sendo trafegadas em tempo real.

Foi útil?

Se este código ajudou você a detectar e resolver uma falha no teu servidor, considere fazer uma doação ao autor pelo PIX abaixo.

image

Chave Pix: 80fd8916-1131-4844-917e-2732eaa2ba74

About

Exploits Whaticket websocket bugs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published