Skip to main content

Diversão com cifras em versões copiadas do Wordle

Escrito por
learn threat intelligence hero

2 de fevereiro de 2022

0 minutos de leitura

Aqui na Snyk, passamos bastante tempo pesquisando vulnerabilidades. Fazemos isso porque há muita gente por aí pesquisando novas maneiras de invadir aplicativos e sistemas. Muitas vezes, colocamos nossos “chapéus cinzentos” para pensar como um hacker mal-intencionado. Costumo usar a opção de ver o código-fonte, analisar o tráfego de rede e dar uma olhada nas strings de consulta. Nesta semana, uma dessas pequenas e saborosas strings de consulta chamou minha atenção em um dos muitos sites que imitam o Wordle.

Quero avisar logo de cara: há SPOILERS ADIANTE. Embora eu não cite o site específico, não será difícil descobrir qual é, e o que escrevo a seguir permitiria adivinhar qualquer palavra personalizada em uma única tentativa. Você foi avisado!

Quem não adora Wordle? Ninguém, é claro! A coisa chegou a tal ponto que o NY Times anunciou que está comprando o Wordle original de seu criador. Surgiram várias imitações, tanto em formato de aplicativo quanto de aplicativo web. E algumas delas não tinham boas intenções! Para deixar claro, aqui está o Wordle original oficial.

Entre as imitações, há uma boa que permite escolher uma palavra personalizada em um dicionário disponível e enviar um link aos amigos para que tentem adivinhá-la no estilo Wordle.

Um amigo me enviou uma dessas e notei que a URL incluía um parâmetro de string de consulta chamado: code=. O que vinha depois parecia um amontoado de caracteres sem sentido. Mas meu sentido-aranha #caóticoneutro começou a formigar. A sequência sem sentido tinha exatamente 6 letras, assim como a palavra. Coincidência? Acho que não! Pensei então que talvez fosse um texto cifrado e que eu pudesse decifrá-lo para adivinhar a palavra em uma única tentativa.

Quando vejo algo assim, sempre tento começar pelo caminho mais fácil: a cifra Atbash (sim, todos os links levam ao wiki de Gravity Falls, porque todo episódio termina com uma cifra).

Cifras Atbash

Imagine que a URL contenha a string de consulta: code=ociwti. Talvez o i represente a mesma letra deslocada? Depois de brincar com isso por alguns minutos, percebi que havia possibilidades demais para uma substituição simples. Então, pensei em tentar resolver o desafio de verdade e depois refazer o caminho ao contrário. Foram necessárias 5 das 6 tentativas, mas cheguei à palavra: sortie. Isso me ajudou na hora, porque percebi que não era uma substituição simples. Se fosse, a terceira letra (r) e a última (e) seriam iguais.

Cifras de César

Minha próxima ideia foi que talvez fosse uma cifra de César (ainda em Gravity Falls). Nessa cifra, a letra do texto original fica algumas posições antes ou depois da letra do texto cifrado. Se você passar do Z ou voltar antes do A, basta continuar do outro lado do alfabeto. O único problema é que o deslocamento continua sendo o mesmo, então a terceira e a última letras do texto original seriam iguais. Ainda assim, gostei da ideia de deslocar as letras no alfabeto.

E se bastasse contar um número diferente de letras para cada posição do texto cifrado até chegar ao texto original? Isso revelaria uma chave que talvez pudesse ser usada para resolver qualquer texto cifrado. Como eu tinha tanto o texto cifrado quanto o original, será que conseguiria descobrir a chave? Vamos ver.

Se eu avançasse a partir de cada posição, no estilo da cifra de César, descobriria quantas letras separar a letra do texto cifrado da letra correspondente no texto original (considerando a volta ao início do alfabeto). Foi isso que encontrei:

O

C

I

W

T

I

S

O

R

T

I

E

4

12

9

23

15

22

Cifra decifrada; continue rolando a página com cautela...

Com essa chave, só faltava testar outra palavra personalizada no Wordle. Criei uma e obtive: code=ywgkpv. Antes de continuar rolando a página, veja se consegue decifrá-la!

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Continue rolando...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Vamos conferir o quadro completo:

Y

W

G

K

P

V

4

12

9

23

15

22

C

I

P

H

E

R

Assim, consegui confirmar que a chave 4-12-9-23-15-22 funcionava com qualquer palavra personalizada no Wordle. Legal!

Se você sabe de qual site estou falando neste post, por favor, guarde essa informação para si. Por que estragar a diversão de quem não escolheu clicar neste blog?

Espero que você tenha curtido esse pequeno desvio pela teia de fios vermelhos e tachinhas que é o meu cérebro. Não consigo evitar a curiosidade quando vejo strings de consulta em URLs. Mas sigo sempre o lema #caóticoneutro: uma provocação leve para dar boas risadas é divertida, mas nada de fazer mal (de verdade).

E, se você curte quebra-cabeças divertidos como este, junte-se a nós no dia 9 de fevereiro, às 11h (horário do leste dos EUA), para uma sessão de hacking ao vivo: Stranger Danger: sua superfície de ataque em JavaScript acaba de aumentar, comandada pelo inigualável Liran Tal! Não pode participar desta vez? Temos uma boa notícia: fazemos sessões todos os meses. Use este link do Zoom para se inscrever.