Move-over
Wargame de seguridad Move en el navegador
Move-over es un CTF pensado para el navegador centrado en seguridad de Move. Lee contratos vulnerables, escribe la ruta de explotación en `run()` y devuelve el `*Flag` correcto para superar cada nivel.
Move-over es código abierto. Explora el código en GitHub.
Formato
Capture-the-Flag
Entorno de ejecución
100% en el navegador
Objetivo
Devuelve el `*Flag`
[00:00:01] arrancando el runtime de move-over en el navegador...
[00:00:02] cargando set de desafíos: artifact, coin_collector, sticky_treasure
[00:00:03] objetivo detectado: devolver level::Flag
[00:00:04] analizando la plantilla de run()... listo
[00:00:05] no hace falta wallet ni conexión a la red
[00:00:06] canal de partner conectado: OpenZeppelin
[00:00:07] sandbox de simulación de exploits: activo
[00:00:08] estado del verificador: esperando tu código...
[00:00:09] escribe run() y pulsa Run_
[00:00:01] arrancando el runtime de move-over en el navegador...
[00:00:02] cargando set de desafíos: artifact, coin_collector, sticky_treasure
[00:00:03] objetivo detectado: devolver level::Flag
[00:00:04] analizando la plantilla de run()... listo
[00:00:05] no hace falta wallet ni conexión a la red
[00:00:06] canal de partner conectado: OpenZeppelin
[00:00:07] sandbox de simulación de exploits: activo
[00:00:08] estado del verificador: esperando tu código...
[00:00:09] escribe run() y pulsa Run_
Seguridad de contratos inteligentes Move en un runtime de navegador
Move-over es un campo de pruebas de seguridad en el navegador en el que aprendes haciendo. En lugar de quedarte solo en la teoría, inspeccionas el código de contratos vulnerables, escribes un flujo de explotación, lo ejecutas al instante y compruebas que tu solución devuelve el objeto de prueba esperado. El ciclo es práctico: leer, escribir, ejecutar, devolver y mejorar.
Cómo funciona el flujo de Move-over en el navegador
Cada nivel se ejecuta en un runtime dentro del navegador, así que no necesitas configurar una wallet, depender del estado de la cadena ni montar una VM local para empezar a practicar. Te centras en la lógica de seguridad de Move: comprobaciones de propiedad, mal uso de capabilities, transiciones de estado entre objetos y cómo construir una ruta de exploit segura y reproducible que pase la verificación.
Escribe `run()`, devuelve el `Flag` y supera el nivel
Tu objetivo es claro: escribir el cuerpo de `run()` para que devuelva el objeto `*Flag` correcto del desafío. Si el tipo de retorno y el comportamiento encajan con lo que pide el contrato del nivel, el nivel queda superado y tu progreso se guarda.
Habilidades clave que vas a practicar
- Leer y razonar sobre el comportamiento de seguridad de contratos inteligentes en Move.
- Escribir lógica orientada a exploits en un entorno controlado dentro del navegador.
- Devolver objetos de prueba correctamente y validar resultados deterministas.
Ruta recomendada para empezar
Empieza por Artifact para asentar lo básico, sigue con Sticky Treasure para patrones de manipulación de objetos y remata con Flash Vault para un razonamiento de exploits más profundo. Esta secuencia te da intuición práctica de seguridad en Move paso a paso.