1.3 KiB
1.3 KiB
Эксплойт 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.