“This is not a bug, is a feature!".

Me apaixonei por uma plataforma de colaboração e tive meu coração despedaçado. 💔

Sumário

O que é o Miro, qual sua proposta?

Buscando por novas ferramentas de trabalho, encontrei o Miro, uma ferramenta realmente incrível! Mas até onde vale a pena abrir mão de privacidade e aceitar a possibilidade de ter seus trabalhos e possivelmente informações confidenciais vazados?

Esta é uma fragilidade na versão FREE. 😉

O Miro (https://miro.com/) é uma plataforma de colaboração baseada em quadros, onde times podem acessar remotamente e trabalharem no mesmo material ao mesmo tempo. É realmente interessante e gostei muito da experiência que tive.

O alerta

Essa semana durante uma aula de design thinking, ligou um alerta e observei um alto grau de exposição que eu não tinha observado no Miro. Mas antes, deixa eu mostrar uma coisa.

A plataforma te possibilita usar até três quadros de forma gratuíta, o que é ótimo! Porém você não tem a opção de deixar em modo privado estes boards. Para isso você deverá desenbolsar pelo menos US$8 mensais. O que acredito ser um preço justo para quem depende de uma ferramenta que pode literalmente concentrar diversas atividades em um lugar apenas.

Voltando ao assunto da aula que despertou minha atençao, foi justamente a URL. Cada board possui um ID, que é referenciado na URL.

Só que ao olhar para meu perfil no Miro e verificando as URLs dos meus quadros, identifiquei que possuem padrões.

No exemplo abaixo mostro as URLs dos meus três boards. Compare com a URL da aula da minha professora na imagem acima. É o mesmo padrão no começo e no fim. Assim, o que era pra ser um ID de 12 caracteres, os esforço de um possível bruteforce e diminuído pela metade, onde precisamos buscar apenas por 6 caracteres! https://miro.com/app/board/o9J_kXXXXXX=/

Acessando informações alheias

Ok e agora?

O que vocês já estão carecas de saber!

Google Dorks

Mas antes de qualquer esforço, podemos utilizar o bom e velho dork para encontrar URLs indexadas em páginas do Google. O Miro não permite que o conteúdo dos quadros sejam indexados, mas vamos buscar por páginas que em seu conteúdo possuam links disponíveis. Ex: intext:miro.com/app/board/

Ou então, procurar por quadros do Miro em quadros do Trello (que é outra plataforma interessante, mas se não bem gerenciada, pode comprometer informações sigilosas do seu grupo de trabalho). Ex.: intext:miro.com/app/board/ site:trello.com

Bruteforcing

Ok, entendidos como acessar quadros públicos do Miro e do Trello, vamos para o bruteforce.

Para facilitar, vou utilizar o Burp Suite para o ataque. Para diminuir o escopo de tentativas vou me resumir apenas a 3 caracteres, não mais 6, resultando em +50K tentativas.

Enviei uma requição para o módulo Intruder e coloquei como escopo do payload apenas nos ultimos 3 caracteres:

Na configuração do payload, adicionei o hífen como caractere utilizado, pois existem boards que o utilizam em seu ID. Além disso, configurei o tamanho máximo e mínimo para 3, que é o nosso objetivo.

Em Option, na configuraçao de filtro por Grep, coloquei o texto “This boards is no longer shared” para diferenciar os quadros existentes dos não existentes. Você pode também realizar este filtro se baseando pelo tamanho do Response.

O que iremos ver a partir de agora são três tipos de resposta:

Status Tipo de cenário
200 Quadro existente e público
200 Quadro removido ou não criado
302 Quandro existente e privado

Neste breve exercício, encontramos 14 quadros públicos. Alguns exemplos abaixo obtidos pelo bruteforce.

Conclusão

Como dito anteriormente, eu acho esta plataforma sensacional para trabalho colaborativo, a proposta é interessante e ela provê um nível de segurança adequado para seus clientes PREMIUM.

Quando falamos de licenças FREE, sabemos que “não existe almoço grátis”. Mas neste caso, quem está usando nossos dados para benefício próprio? 🤔

O Miro ainda está amadurecendo e crescendo. Acredito que em breve irão ajustar e reforçar esta feature. 🥰