Райтап на задачу «Канарейка»

syonkaio

Автор:

syonkaio

31 октября 2026

6

31.10.2026
Канарейка
Категория:

PWN

Задача «Канарейка»

Автор:

LastTeamLead

Первая кровь:
Term1nal
Сложность:
easy
Дата публикации:
04.04.2026
Решений:
48
Рейтинг:
4.3/5
Ссылка:
Решать

Первый шаг: давай прочитаем условие самого таска и выделим важное: бэкенд на плюсах, ошибка с переполнением, защита на перезапись стека, канарейка (само название).

Если вы раньше не встречались с PWN, то первым делом стоит открыть гугл и вбить в поиск то, что нам дано “канарейка кибербезопасность” “защита на перезапись стека канарейка”. Самый первый сайт, который у нас показывается после запроса, — статья на Хабре про Stack Canary — https://habr.com/ru/companies/ua-hosting/articles/416047/ (прочитайте эту статью (лекцию) после выполнения задания, если захотите узнать больше информации о канарейке). Всё, что нужно для выполнения этого таска, я расписал =)

Раньше шахтёры спускались в угольные шахты с клеткой, в которой сидела канарейка. Эти птицы очень чувствительны к метану и угарному газу. Если канарейка затихала или погибала, для шахтёров это был самый понятный сигнал: «Здесь ядовитый газ, немедленно бегите, иначе погибнете сами!».

В компьютерной памяти канарейка выполняет точно такую же роль живого индикатора опасности.

Разбираемся, что же это такое. Stack Canary (научное определение) — это механизм защиты от переполнения буфера (Buffer Overflow) на уровне компилятора и операционной системы.

Простыми словами канарейка — это секретное проверочное число, которое программа прячет в памяти компьютера для защиты от хакеров.

Как оно работает?

Схема размещения буфера, канарейки и адреса возврата

Думаю, после моей проделанной работы в Paint всё стало понятно, думаю, пора приступать к самому таску)

Вспомним: чтобы убить канарейку, нам надо ввести большее количество символов, чем разрешено. Начинаем перебор: просто вводим любую букву много раз. Все попытки ввести оказывались неудачными и ничего необычного не происходило. Но, введя 32-ю букву, текст ошибки изменился с Wrong Flag : наши буквы на Wrong Flag: наши буквы7629b8ce.

Раскрытие байтов в ответе валидатора

Очень интересно: 31 символ буфер всё ещё принимает, а 32 — уже с какими-то лишними байтами, пробуем дальше.

Защита стека отклонила ввод

Дальше наш запрос вообще перестало принимать, понимаем что предел нашей канарейки — 32 символа.

А после ввода 32-го символа эти байты и есть канарейка!

Пробуем ввести то, что нам выдала ошибка (наш текст с нашей канарейкой в буфер для флага)

Ответ валидатора с полученным флагом

Флаг получен!

Если вы нашли опечатку или ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter

Также по теме: