Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
CTF и практические задания
Хакерский CTF построен на правилах классического Capture the Flag
Авторизационная форма с гостевым входом — и абсолютно пустой интерфейс. Флаг спрятан в fl4g.txt, но путь к нему закрыт. Исходники прилагались к заданию — и в nginx.conf на 13-й строке пропущен завершающий слэш.
Path Traversal через misconfiguration Nginx: отсутствие "/" в конце location-директивы позволяет вырваться за пределы разрешённого каталога. Уязвимость из OWASP — классика неправильной конфигурации обратного прокси, которая регулярно встречается в production-средах.
Эксплуатация в два шага: изучить nginx.conf из прикреплённых исходников, восстановить корректный путь к fl4g.txt с учётом обхода директории. Запрос к сформированному пути — флаг получен без дополнительных инструментов.
Лишний символ "/" в nginx.conf меняет семантику location: без него префиксный матч превращается в точечный и открывает path traversal на всё дерево файлов.
Архив документов возвращает JSON — пропущен document с _id=3, запрос возвращает 200 без содержимого. Broken Access Control + NoSQL Injection: оператор $or обходит ролевую проверку и показывает скрытый документ. Флага нет — он в скрытом поле.
Разведка через Burp: поля _id, title, summary в ответе указывают на MongoDB. $or с несуществующим _id как «безопасная» ветка условия раскрывает документ без прав. Поле flag найдено через $exists: true. Извлечение содержимого — посимвольный blind NoSQL injection через $regex с якорем "^CODEBY{".
Автоматизация в Burp Intruder: позиция после накопленного префикса, словарь из латинских букв и спецсимволов, сортировка по длине ответа — самый длинный ответ выдаёт правильный символ. Флаг собирается итерациями как конструктор.
$or с заведомо ложной второй веткой — классический способ обхода фильтрации в NoSQL без угадывания структуры ACL.
Flask-приложение с формой восстановления пароля и генератором токенов из трёх символов (b, c, d) длиной 6 знаков — всего 729 комбинаций. Токен удаляется сразу после первого обращения к /reset/<uuid>, что превращает брутфорс в гонку за сессионной cookie.
Анализ исходников раскрыл архитектуру: страницы /reset_password и /reset/<uuid>, SQLite с таблицей users, функция _generate_token() с жёстко заданным алфавитом. Стандартный перебор с проверкой 200 не работает — редирект происходит раньше. Решение: allow_redirects=False и перехват 302-ответа с последующим извлечением session cookie через x.cookies.get_dict().
Python-скрипт на itertools.product генерирует все 729 вариантов, последовательно проверяет /reset/<token>, при коде 302 сохраняет cookie и прерывает цикл. Cookie вставляются в браузер, переход на /admin — флаг получен.
Honeypot в виде рабочего тетриса унёс 30 минут. Исходники раскрыли всё за 5.
Письмо, которое отдаёт root: захватываем машину через Tar.
Сервис, который просто «читает архивы», кажется безобидным? А зря — одна symlink-ссылка внутри tar-архива превращает невинную распаковку в чтение /etc/passwd и кражу приватного SSH-ключа.
В этом разборе: разведка nmap, эксплуатация symlink-уязвимости (CWE-61), вход по угнанному ключу и финальная эскалация до root через sudo tar.
Пошаговый разбор машины с HackerLab для пентестеров, которые хотят набить руку на реальных техниках.
Кнопка выводит «совет» — POST-запрос с JSON уходит на GraphQL-эндпоинт. Первая мысль: SQL-инъекция, данные из БД. Реальность: интроспекция схемы через __schema раскрыла поле getFlag с параметром isAdmin — и флаг получен двумя запросами.
GraphQL — язык запросов для API со строгой типизацией. Ключевая особенность для пентестера: интроспекция включена по умолчанию и отдаёт полную схему API — все типы, поля, аргументы. Запрос {"query": "{__schema{queryType{name}}}"} показал структуру. Дальше — поле getFlag(isAdmin: Boolean), значение true, флаг в ответе.
Вектор: GraphQL Introspection → Schema Disclosure → прямой вызов привилегированного поля без авторизации. Классическая ошибка: логика доступа вынесена в клиентский параметр isAdmin вместо серверной проверки прав.
Burp Repeater + pretty-print JSON — и GraphQL-схема читается как документация к собственному API.
Recon начинается со стука. Неделя 1 — nmap в четырёх режимах.
Прежде чем эксплуатировать что-либо, нужно знать: какие порты открыты, что за сервисы, какие версии. На эксплойт уходит 30 минут, на recon с нуля — 2 часа, и большинство новичков пропускают первый шаг.
Задача «Кто там?» на HackerLab — разбираемся с SYN scan, полным сканом 65535 портов, детектом версий через NSE-скрипты и OS fingerprinting. Запоминаем не команды, а что делает каждый флаг.
Дедлайн — воскресенье, 7 июня. После него — открытые writeup'ы и рекап с разбором ошибок.
Первая неделя марафона «Сетевая разведка за 30 дней» — мерч от Codeby для топ-3 solver'ов.
Финальная неделя серии «Сетевая разведка за 30 дней». Recon — не отдельная фаза, а непрерывный процесс: на каждом шаге эксплуатации возвращаемся глубже. Один target, четыре инструмента, одна цепочка.
Задача: «Секретный кабинет» (500 очков). Маршрут известен, нужен пароль. Классический сценарий: enumeration → discovery → brute force auth → access.
Цепочка недели: nmap -sV -p- находит все сервисы и версии → gobuster dir с расширениями .php/.html обнаруживает нестандартные пути к auth-форме → Burp Repeater разбирает параметры POST-запроса авторизации и поведение при верном/неверном вводе → hydra бьёт по форме с данными из Burp. Если hydra не находит пароль на шаге 4 — шаги 1-3 повторяются с другим вектором.
Старт: 23 июня 10:00 МСК. Дедлайн: 28 июня 23:59. Антиспойлер: подходы без конкретных путей до дедлайна.
Три недели серии складываются в одну задачу — recon → enum → discovery → auth bruteforce.
4 недели — 4 инструмента сетевой разведки. Recon — самая недооценённая фаза пентеста. 80% реальных engagement'ов начинаются с банального nmap и gobuster. Кто умеет читать вывод сканера — находит уязвимости.
Серия задач на HackerLab.pro: 1–7 июня — nmap port scan и banner grabbing (200 очков), 8–14 июня — service enumeration через SSH и FTP (200 очков), 15–21 июня — web reconnaissance с gobuster и ffuf (400 очков), 22–28 июня — полная цепочка recon → exploitation с Burp и hydra (500 очков).
Все задачи retired — writeup'ы после дедлайна приветствуются. Еженедельные треды с обсуждением инструментов. Топ-3 первых solver'ов каждой недели — мерч от Codeby.
К концу июня — свой стартовый чек-лист «что делать, когда увидел новый IP».
Attack-Defense CTF изнутри: чекер с race condition на 40-й минуте, gameserver под нагрузкой и ферма флагов против ручного curl — побеждает инфраструктура, не навык взлома.
Gameserver: controller + checker master + submission + web на PostgreSQL. NAT masquerading — без него команда закрывает все IP кроме gameserver одним правилом iptables. Vulnbox: Docker Compose, первый час — бэкап до любых изменений, иначе сломанный патч без отката.
Написание чекеров: рандомизация данных обязательна, race condition в PUT/GET убивается нагрузочным тестом на 50 тиков до старта. Ферма флагов S4DFarm или DestructiveFarm: эксплойт в stdout, ферма сама раскидывает на все команды. Tulip для перехвата чужих эксплойтов из PCAP.
Таблица ролей команды и статусы SLA: OK / DOWN / FAULTY / FLAG_NOT_FOUND.
Скорборд лёг на 40-й минуте: SQLite под нагрузкой динамического скоринга и 300+ участников. Организация CTF — инженерная задача, а не «закинул таски и открыл регистрацию».
Три формата — три разных инфраструктуры. Jeopardy: CTFd на PostgreSQL, per-team флаги через соль, rate limit 10 попыток в минуту. Attack-Defense: VLAN + WireGuard, gameserver с чекерами на каждый тик, Ansible для деплоя vulnbox — и если gameserver в одной сети с vulnbox, атакующий правит себе очки напрямую.
Динамический скоринг: формула decay в CTFd, таск за 500 очков после 30 решений стоит 65. Античит: per-team флаги делают шаринг очевидным, синхронные сабмиты с разницей менее 30 секунд — эвристика для расследования. Чеклист из 8 пунктов перед стартом.
Начинайте с Jeopardy на 20 тасков — три соревнования до первого Attack-Defense.
🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.