Задача об игре в ветреную погоду  - Академия Selectel

Задача об игре в ветреную погоду 

Иван Коробов
Иван Коробов Ведущий инженер по ИБ
2 января 2025

Задача подойдет игрокам в CTF и начинающим JavaScript-разработчикам.

Изображение записи

Условие

Добро пожаловать в тир. Здесь игрок, попавший стрелой в центр мишени, может получить награду. Но будьте терпеливы, ведь сегодня ветрено, и стрелу сдувает!

Управлять луком можно с помощью кнопок на сайте или с помощью клавиатуры: кнопками вправо, влево и Enter.

Задача

Перейдите в тир и найдите флаг — строку в формате slcctf{}.

Решение

Переходим на страницу тира. В любом месте нажимаем правую кнопку мыши (ПКМ) и выбираем view page source.

Листаем код страницы для тега script — в нем находится JavaScript, отвечающий за логику игры.

Используем самый простой способ решения. Находим условие, при котором происходит выигрыш:


    if (380 < arrowX && arrowX < 420 && 80 < arrowY && arrowY < 120) {

  alert('give you price: /urthebestarcher' + targetX + targetY);

  return;

}

Далее переходим в консоль. Для этого на странице вновь нажимаем ПКМ, выбираем Inspect, а затем — Console. 

И в консоли выполняем код:


    alert('give you price: /urthebestarcher' + targetX + targetY)

В результате появится окно с текстом:

give you price: /urthebestarcher400100.

Добавляем полученный текст к исходной ссылке: http://target.slcctf.fun/urthebestarcher400100.

Переходим по этому адресу и получаем флаг:

Флаг slcctf{ea904feb1d32e483041878dd76db01d7c303ad46}.

Ответ: slcctf{ea904feb1d32e483041878dd76db01d7c303ad46}

Другие материалы по CTF