Задача об игре в ветреную погоду
Задача подойдет игрокам в 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)
В результате появится окно с текстом:
Добавляем полученный текст к исходной ссылке: http://target.slcctf.fun/urthebestarcher400100.
Переходим по этому адресу и получаем флаг:
Ответ: slcctf{ea904feb1d32e483041878dd76db01d7c303ad46}