Files

1.3 KiB
Raw Permalink Blame History

Эксплойт 1

Флагстор 1. Непроходимые уровни (их награды)

Уязвимость: В функции MoveOutOfWay отсутствует проверка границ (проверка выполняется на стороне клиента). Уровни можно пройти, выйдя за пределы карты.

Исправление: Добавить проверку границ в функцию MoveOutOfWay:

if p.X < 0 || p.Y < 0 || p.X >= sess.Tiles.size || p.Y >= sess.Tiles.size {
    return false
}

Эксплойт 2

Флагстор 2. Приватные уровни (их награды)

Уязвимость: Бэкдор в функции Level.CreateFrom (спрятан в шаблоне с множеством табуляций, в результате чего он оказывается вне экрана). Он создаёт пользователя с именем и паролем, равными sha256(level_name)[:32], которым затем можно воспользоваться для доступа к уровню и флагу.

Исправление: удалить бэкдор из create_from.tmpl и регенерировать код ИЛИ удалить его напрямую из create_from.go.