Уязвимость в плагине WorldEdit: как хакеры используют schematics и скрипты для атаки
Введение: мощный инструмент в руках хакера
WorldEdit — один из самых популярных плагинов для Minecraft, установленный на миллионах серверов. Он даёт невероятные возможности для строительства и редактирования мира. Но те же возможности могут быть использованы хакерами для разрушения сервера, если плагин неправильно настроен. В этой статье — известные уязвимости WorldEdit и методы защиты.
Уязвимость 1: CraftScripts (JS-скрипты)
WorldEdit поддерживает скрипты на JavaScript (CraftScripts), которые хранятся в папке plugins/WorldEdit/craftscripts/. Эти скрипты могут выполнять любые команды от имени сервера.
Атака: Если хакер получит доступ к папке craftscripts (через другую уязвимость) или если сервер разрешает игрокам загружать скрипты, хакер может создать скрипт с содержимым:
server.dispatchCommand(server.console, "op Hacker");
server.dispatchCommand(server.console, "stop");
При выполнении скрипта через команду /cs script.js сервер выдаст хакеру права оператора и остановится.
Защита:
- Удалите папку craftscripts, если не используете скрипты.
- В конфиге WorldEdit:
scripting-timeout: 0(отключает выполнение скриптов). - Ограничьте право
worldedit.scripting.executeтолько администраторам.
Уязвимость 2: Загрузка схематик (Schematic Upload)
WorldEdit позволяет загружать схематики (.schem, .schematic файлы) через команду //schem load файл. Эти файлы могут содержать вредоносные NBT-данные.
Атака: Хакер создаёт схематику с аномально большими NBT-данными (чанк-бан) или с командными блоками, настроенными на выполнение вредоносных команд. При вставке схематики (//paste) сервер крашится или выполняет команды.
Защита:
- Не давать игрокам право
worldedit.schematic.loadиworldedit.clipboard.paste. - Проверять схематики перед загрузкой: ограничить размер файла, сканировать на наличие командных блоков.
Уязвимость 3: Массовые операции (Performance Exploit)
WorldEdit позволяет выполнять операции над огромными регионами. Команда //set stone на регионе 1000x1000x1000 может повесить сервер на часы.
Атака: Хакер намеренно выполняет огромные операции, вызывая отказ в обслуживании (DoS).
Защита:
- В конфиге WorldEdit установить лимиты:
max-blocks-changed: 5000000(максимум блоков за операцию).max-radius: 500(максимальный радиус выделения). - Использовать FastAsyncWorldEdit (FAWE) — он обрабатывает большие операции асинхронно, не блокируя главный поток.
Уязвимость 4: Инъекция команд через регионы
WorldEdit позволяет называть регионы. Если плагин не экранирует названия, хакер может внедрить команду в название региона.
Защита:
- Обновить WorldEdit до последней версии (эта уязвимость исправлена).
💡 Совет профи
Используйте FastAsyncWorldEdit (FAWE) вместо стандартного WorldEdit. FAWE не только быстрее, но и имеет встроенные защиты от DoS-атак (лимиты по времени выполнения, асинхронная обработка, защита от крашей). И настройте логирование всех WorldEdit-команд через плагин CoreProtect — вы всегда будете знать, кто и что редактировал.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!