Move-over
Браузерный варгейм по безопасности Move
Move-over — это CTF по безопасности Move прямо в браузере. Читай уязвимые контракты, пиши эксплойт в `run()` и возвращай нужный `*Flag`, чтобы пройти уровень.
Move-over — open source. Изучай код на GitHub.
Формат
Capture-the-Flag
Окружение
100% в браузере
Цель
Вернуть `*Flag`
[00:00:01] поднимаем браузерный рантайм move-over...
[00:00:02] загружаем набор челленджей: artifact, coin_collector, sticky_treasure
[00:00:03] цель определена: вернуть level::Flag
[00:00:04] парсим шаблон run()... готово
[00:00:05] кошелёк не нужен, сеть не нужна
[00:00:06] партнёрский канал подключён: OpenZeppelin
[00:00:07] песочница для эксплойтов: активна
[00:00:08] верификатор: ждём твой код...
[00:00:09] пиши run() и жми Run_
[00:00:01] поднимаем браузерный рантайм move-over...
[00:00:02] загружаем набор челленджей: artifact, coin_collector, sticky_treasure
[00:00:03] цель определена: вернуть level::Flag
[00:00:04] парсим шаблон run()... готово
[00:00:05] кошелёк не нужен, сеть не нужна
[00:00:06] партнёрский канал подключён: OpenZeppelin
[00:00:07] песочница для эксплойтов: активна
[00:00:08] верификатор: ждём твой код...
[00:00:09] пиши run() и жми Run_
Безопасность смарт-контрактов Move прямо в браузере
Move-over — это браузерная площадка по безопасности, где учишься на практике. Никакой сухой теории: ты разбираешь код уязвимого контракта, пишешь эксплойт, тут же запускаешь его и проверяешь, что решение возвращает нужный объект-доказательство. Цикл предельно простой — читай, пиши, запускай, возвращай флаг, улучшай.
Как устроен браузерный воркфлоу Move-over
Каждый уровень крутится в браузерном рантайме — не нужно настраивать кошелёк, цепляться к состоянию сети или поднимать локальную VM, чтобы начать практиковаться. Ты сосредотачиваешься на сути: проверки владения, злоупотребление capability, переходы состояний объектов и то, как собрать безопасный воспроизводимый эксплойт, который пройдёт верификацию.
Напиши `run()`, верни `Flag` — уровень пройден
Задача предельно конкретная: написать тело `run()` так, чтобы оно возвращало нужный объект `*Flag`. Если тип возврата и поведение совпадают с тем, что ждёт контракт уровня, уровень засчитывается и прогресс сохраняется.
Что ты прокачаешь
- Читать код смарт-контрактов на Move и понимать его с точки зрения безопасности.
- Писать эксплойты в управляемом браузерном окружении.
- Корректно возвращать объекты-доказательства и проверять детерминированный результат.
Рекомендуемый порядок
Начни с Artifact — там основы. Дальше Sticky Treasure: паттерны работы с объектами. Потом Flash Vault — уже более глубокие рассуждения об эксплойтах. Такая последовательность шаг за шагом выстраивает практическую интуицию по безопасности Move.