Проверка в браузере
Задание 1Введение
Цель: Понимать, почему проверки в браузере не защищают.
Страница входа в админку проверяет пароль прямо в JavaScript. Пароль и есть флаг.
Задание 2Теория и инструменты
JavaScript, HTML и все данные страницы скачиваются в браузер пользователя. Их можно прочитать во вкладке «Исходный код» или в инструментах разработчика (F12).
Поэтому пароль, который проверяется в JS, фактически опубликован. Здесь его немного «запутали» разворотом строки — это не защита.
Инструменты
- Браузер: Ctrl+U (исходный код), F12 → Sources
- Python:
s[::-1]разворачивает строку
Больше теории — в разделе «Обучение: Веб».
Задание 3Практика: найдите флаг
<script>
function login() {
const p = document.getElementById('pass').value;
const ok = '}ytiruces_ton_si_edis_tneilc{FTC'.split('').reverse().join('');
if (p === ok) alert('Добро пожаловать, админ!');
else alert('Неверный пароль');
}
</script>
Пошаговый план — открывайте по одному шагу
- 1Найдите в коде строку, с которой сравнивается введённый пароль.
- 2Разберите, что делают
.split(''),.reverse()и.join(''): строку разбивают на символы, переворачивают и склеивают обратно. - 3Переверните строку сами — получите пароль, он же флаг.
Подсказки — каждая до решения стоит −10 очков
Задание 4Как защититься
Любая проверка доступа должна выполняться на сервере. Клиент лишь показывает интерфейс.
Разборы участников
Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.