Skip to main content

Diversión con cifrados en Wordles clonados

Escrito por
learn threat intelligence hero

2 de febrero de 2022

0 minutos de lectura

En Snyk, dedicamos mucho tiempo a investigar vulnerabilidades. Lo hacemos porque hay muchas otras personas investigando nuevas formas de entrar en apps y sistemas. A menudo nos ponemos el «sombrero gris» para pensar como un hacker malicioso. Suelo ver el código fuente, revisar el tráfico de red y examinar las cadenas de consulta. Esta semana, una pequeña y deliciosa cadena de consulta llamó mi atención en uno de los muchos sitios que clonan Wordle.

Primero, quiero advertirte que hay SPOILERS MÁS ADELANTE. Aunque no menciono el sitio web en cuestión, no será difícil identificarlo, y lo que escribo a continuación te permitiría adivinar cualquier palabra personalizada en un solo intento. ¡Ya estás advertido!

¿A quién no le encanta Wordle? ¡A nadie! Llegó al punto de que The New York Times anunció que compraría el Wordle original a su autor. Han aparecido muchos clones, tanto en forma de app como de aplicación web. ¡Y algunos no tenían buenas intenciones! Para que conste, aquí está el Wordle original oficial.

Entre los clones hay uno bueno que te permite elegir una palabra personalizada de un diccionario disponible y enviarles un enlace a tus amigos para que intenten adivinarla al estilo Wordle.

Un amigo me envió uno y noté que la URL incluía un parámetro de cadena de consulta llamado: code=. Lo que seguía parecía un galimatías. Pero mi sentido arácnido #caoticoneutral empezó a hormiguear. La cadena de letras sin sentido tenía exactamente 6 letras, y la palabra también tenía 6 letras. ¿Coincidencia? ¡No lo creo! Mi segundo pensamiento fue que quizá se trataba de un texto cifrado y que podía descifrarlo para adivinar la palabra en un solo intento.

Cuando veo algo así, siempre intento empezar por lo más fácil: el cifrado Atbash (sí, todos los enlaces llevan a la wiki de Gravity Falls, porque cada episodio termina con un cifrado).

Cifrados Atbash

Imagina que la URL contiene la cadena de consulta: code=ociwti. Quizá la i representa la misma letra desplazada. Después de probar durante unos minutos, había demasiadas posibilidades para una sustitución simple. Así que pensé en intentar resolverlo de verdad y luego trabajar hacia atrás. Me tomó 5 de 6 intentos, pero llegué a la palabra: sortie. Esto me ayudó de inmediato porque ahora podía ver que no se trataba de una sustitución simple. Si lo fuera, la tercera letra (r) y la última (e) serían iguales.

Cifrados César

Luego pensé que quizá era un cifrado César (seguimos con Gravity Falls). Este cifrado coloca la letra del texto plano cierto número de letras antes o después de la del texto cifrado. Si pasas de la Z o retrocedes más allá de la A, simplemente vuelves al principio o al final del alfabeto. El único problema es que el desplazamiento sigue siendo constante, y la tercera y la última letras del texto plano serían iguales. Pero me gustó la idea de desplazarse por el alfabeto.

¿Y si simplemente hubiera que contar una cantidad distinta de letras hacia adelante para cada posición del texto cifrado y así obtener el texto plano? Eso revelaría una clave que podría usarse para resolver cualquier texto cifrado. Como tenía tanto el texto cifrado como el texto plano, ¿podía extraer la clave? Veamos.

Si avanzo en cada posición, al estilo del cifrado César, obtengo la cantidad de letras que hay que recorrer desde la letra cifrada hasta la letra del texto plano (teniendo en cuenta las vueltas al principio del alfabeto). Esto fue lo que obtuve:

O

C

I

W

T

I

S

O

R

T

I

E

4

12

9

23

15

22

Cifrado resuelto; desplázate con cautela...

Con esa clave, solo faltaba probar otro Wordle personalizado. Creé uno propio y obtuve: code=ywgkpv. Antes de seguir bajando, ¡a ver si puedes resolverlo!

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Sigue bajando...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Veamos el tablero completo:

Y

W

G

K

P

V

4

12

9

23

15

22

C

I

P

H

E

R

Así pude confirmar que la clave 4-12-9-23-15-22 funcionaba con cualquier Wordle personalizado. ¡Genial!

Si sabes de qué sitio hablo en esta publicación, guárdatelo. ¿Para qué arruinarles la diversión a quienes no hicieron clic en este blog?

Espero que hayas disfrutado de este pequeño desvío por el entramado de hilos rojos y chinches que es mi cerebro. No puedo evitar preguntarme qué pasa cuando veo cadenas de consulta en las URL. Pero siempre sigo el credo #caoticoneutral: hacer una pequeña travesura para reírse está bien, pero nada de hacer el mal (de verdad).

Y si te gustan los rompecabezas divertidos como este, acompáñanos el 9 de febrero a las 11 a. m. EST en una sesión de hacking en vivo: Stranger Danger: tu superficie de ataque de JavaScript acaba de crecer, a cargo del inigualable Liran Tal. ¿No puedes asistir esta vez? ¡Buenas noticias! Organizamos estas sesiones todos los meses. Usa este enlace de Zoom para registrarte.

Leer más

illustration hero ai
Blog

PHP corrige dos vulnerabilidades críticas de RCE sin autenticación (CVE-2026-109618, CVE-2026-109619): actualiza ahora

Dos fallas críticas en el ciclo de solicitudes de PHP pueden permitir la ejecución remota de código sin autenticación. Actualiza a una versión corregida o instala una corrección retroportada por un proveedor para las versiones anteriores.

blog feature ai lilac
Blog

Convierte tu backlog de vulnerabilidades en pull requests con la remediación agéntica

Evo Remediation Agent ya está disponible en Open Preview e incorpora la resolución automatizada de dependencias a Evo Agentic AppSec. Ahora, los equipos de AppSec pueden ejecutar campañas de remediación continuas

AI Background min crop
Blog

La IA activa todos los riesgos que has aceptado: siete ideas del panel de seguridad de IA sin filtros

La IA hace que los ataques sean más baratos y rápidos, y deja al descubierto riesgos que las organizaciones ya enfrentan. Cuatro líderes de seguridad explican por qué la defensa a velocidad de máquina y la corrección más rápida son esenciales.