CTF и практические задания

Хакерский CTF построен на правилах классического Capture the Flag

Writeup Web | Галерея | HackerLab

  • 535
  • 1
HackerLabGallery.webp


🌐 Сервис отображает фотографии по URL — первая же мысль: SSRF. Попытка загрузить .php-шелл отклонена фильтрацией расширений. Переименование в .png позволяет загрузить файл, но вывод пуст. Ключевой момент — .txt открывает выполнение команд.

PHP-шелл system($_GET['cmd']) публикуется через python3 -m http.server + утилиту clo от cloudpub: локальный сервер становится публично доступным без регистрации домена. Этот шаг официальный WriteUp обходит стороной, хотя именно он ставит новичков в тупик.

Цепочка: .php заблокирован → .png загружается, вывод пустой → .txt — команды выполняются. Чтение исходников через URL-кодированный cat index.php обходит ограничения разбора спецсимволов. Флаг получен из исходного кода.

💡 Три расширения — три разных поведения одного фильтра. Перебор расширений — обязательный шаг при file upload bypass.

Hackerlab 🔄 Глобальное обновление на HackerLab!

  • 711
  • 0
HackerLab.webp


Мы перебрали платформу почти целиком — от внешнего вида до новых механик. Главное:
  • Новый облик
    Платформа получила цельный тёмный дизайн. Чище, контрастнее, приятнее для долгих сессий.
  • Уровни и XP
    Теперь у вас есть уровень. Баллы за решённые задания — это и есть ваш XP: они повышают уровень и поднимают вас в рейтинге одновременно.
  • Серия (Streak)
    Решайте хотя бы одно задание в неделю — и держите серию. Если неделя выпала, раз в месяц вас прикроет страховка. Новая неделя считается с выходом заданий в субботу (12:00 по МСК).
  • Рейтинг стал нагляднее
    Появилась вкладка «Рядом со мной» — видно соседей по месту, а не только топ. Переключайтесь между сезонным и глобальным зачётом и следите за движением своей позиции.
  • Живая главная
    Новая Live-лента показывает first blood и решения в реальном времени. Рядом — актуальные события, свежие задания и ваша активность.
  • Профиль
    Переработан под новую систему: прогресс по категориям, достижения с понятной следующей целью и радар ваших компетенций.
  • Удобнее искать задания
    В категориях заработали поиск, фильтры и...

Статья CTF соревнования по кибербезопасности: тренировка Red/Blue Team и оценка кандидатов в ИБ

  • 552
  • 0
Плата сервера с обгоревшей дорожкой под лупой на чёрном антистатическом коврике. Жёсткий белый свет выхватывает повреждённый чип из глубокой тени.


🧠 Кандидат с тремя сертификациями и пятью годами опыта не выстроил цепочку path traversal → RCE за 40 минут. Участник без единого дня в индустрии закрыл ту же задачу за 12 минут — и попал в Red Team.

CTF-формат вскрывает то, что прячет резюме: скорость под давлением, глубину владения техниками, способность строить цепочки fingerprinting → initial access → privesc. В статье — маппинг CTF-категорий на MITRE ATT&CK (T1190, T1068, T1110), проектирование задач по kill chain и разбор таска на базе CVE-2023-32315 (path traversal в Openfire, CVSS 8.6, CWE-22, CISA KEV).

💡 SOC и HR смотрят на сертификаты — CTF показывает, кто реально строит цепочку, а кто пересказывает методологию.

Статья CTF инфраструктура развёртывание: CTFd, kCTF и Docker-изоляция от 50 до 2000 участников

  • 576
  • 0
Ночной зал мониторинга сети: три монитора с топологией Kubernetes, метриками Grafana и надписью «DOWNUNDERCTF — 32100 RPS». Сквозь стеклянную перегородку видны серверные стойки с синими индикаторами.


⚙️ DownUnderCTF 2023: 2000 команд, 32 100 RPS, $876 AUD — и один VPS за 2000 рублей выдержал университетский CTF на 120 человек так же стабильно. Разница — в понимании, когда nsjail-изоляция обязательна, а когда Docker Compose закрывает задачу.

CTFd управляет скорбордом и флагами, kCTF разворачивает контейнеры с изоляцией через nsjail + seccomp + user namespaces — они не конкуренты, а пара. PWN-задания с RCE требуют per-connection изоляции: без неё участник сбрасывает флаг соседу или уходит в container escape (MITRE T1611).

До 500 участников — CTFd + Docker Compose на VPS за 30 минут.

💡 Организаторы думают о скорборде — падают на runtime-изоляции. 4579 инстансов за событие не поднять без Kubernetes.

Writeup ПОСТимся

  • 508
  • 0
1781557333299.webp


🌐 Сайт с формой поиска — POST на /api/posts/search, параметр filter передаётся в base64. Кавычка в запросе возвращает 500. SQL-инъекция подтверждена.

Разведка через F12: исходный код раскрывает структуру API и схему декодирования. Чтобы не конвертировать каждый payload вручную — расширение Burp для автоматической base64-кодировки на лету.

Цепочка эксплуатации: ORDER BY 3 — три колонки. UNION SELECT с NULL подтверждает вывод данных. Fingerprinting через sqlite_version() — SQLite 3.40.1. SELECT tbl_name FROM sqlite_master — таблица flag, колонка flag. Финальный UNION SELECT выводит флаг.

Классический UNION-based SQLi в POST-запросе с base64-обёрткой. Защитное расширение Burp сэкономило время на ручном кодировании каждого payload.

💡 500 на кавычку в POST-теле — первый и главный сигнал SQL-инъекции. Никакого fuzz-инструмента, один символ.

Hackerlab Неделя 3: GreenEdge - web reconnaissance, directory + vhost

  • 809
  • 3
Тёмный рабочий стол с терминалом: web-разведка GreenEdge, gobuster нашёл /admin, /backup, /api, ffuf обнаружил vhost internal.greenedge


🔍 Главный сайт — только то, что вам решили показать. Реальная поверхность атаки: скрытые директории, vhosts, admin-панели по нестандартным путям. Неделя 3 серии «Сетевая разведка за 30 дней».

Цель: GreenEdge — внутренний портал с «нестабильными компонентами». Инструменты недели: gobuster с флагом -x php,html,txt для directory brute force, ffuf с фильтром -fc 404 когда сервер отдаёт 200 на несуществующее, ffuf через Host header для vhost enumeration на одном IP, wfuzz для перебора параметров API-эндпоинтов.

Wordlist — не «больше = лучше»: SecLists под конкретную задачу даёт результат за 5 минут вместо часа с medium-списком. Vhost enumeration часто оказывается ключом, когда gobuster по основному хосту ничего не находит.

Старт: 15 июня 20:00 МСК. Дедлайн: 21 июня 23:59. Антиспойлер: до дедлайна — инструменты и подходы, конкретные пути и vhosts — в writeup после.

💡 gobuster vs ffuf: оба нужны. Один пропускает то, что замечает другой — особенно при нестандартных кодах ответа.

Writeup Web | Конвертер | HackerLab

  • 539
  • 0
ConverterHackerLab.webp


🌐 ASCII-конвертер на первый взгляд — обычный инструмент. Первая гипотеза: CMD Injection. Проверка payload {{ 7*7 }} вернула 49 — перед нами Jinja2 и классический SSTI.

Server-Side Template Injection позволяет взаимодействовать с подклассами Python напрямую. Через {{ [].__class__.__base__.__subclasses__() }} получаем список доступных классов. На индексе 137 — os._wrap_close: класс из модуля os, через который открывается доступ к глобальной области видимости модуля и функциям popen() и system().

Payload {{ [].__class__.__base__.__subclasses__()[137].__init__.__globals__['popen']('ls -lah').read() }} показывает структуру файлов проекта. Финальный шаг — grep по app.py для вывода флага без лишнего кода приложения.

Цепочка: обнаружение шаблонизатора → перечисление подклассов → поиск os-модуля → RCE через popen().

💡 os._wrap_close — частая цель в SSTI на Jinja2: именно он даёт выход в os.popen без импортов.

Writeup Web | Flag shop | HackerLab

  • 502
  • 0
hackerlabflagshop.webp


🌐 Маркетплейс с балансом $100, товарами и формой продажи. Купил Bad USB — $20 ушли, товара нет. Сканирование нашло /sell — можно выставлять свои товары с уникальным ID. Пазл сложился: Race Condition.

Механика: создаём товар с ценой $-99 (три символа, отрицательное число — при вычитании система прибавит сумму к балансу). Регистрируем второй аккаунт, берём его session cookie. Python-скрипт запускает 100 потоков одновременно на покупку товара через POST /buy/ID. Запускаем 5-6 раз — баланс растёт.

Race Condition срабатывает, потому что сервер не блокирует параллельные транзакции атомарно: между проверкой баланса и его списанием успевают пройти десятки запросов. Сервер «думает», что у нас достаточно средств, и выполняет все операции.

После накопления баланса покупаем секретный девайс — флаг получен.

💡 Ключевой шаг — отрицательная цена + многопоточность. Без второго аккаунта покупка собственного товара заблокирована.

Статья Bcrypt взлом паролей: как утекают хэши с Dragonica и почему это проще, чем кажется

  • 611
  • 0
Две видеокарты RTX 3090 на тёмном антистатическом коврике, подсвеченные бирюзовым светом монитора. На задней панели карты лазерная гравировка с хешем bcrypt и пометкой CRACKED.


💣 CTF-дамп Dragonica: 40 000 bcrypt-хэшей, cost factor 10, две RTX 3090 — и 1500 паролей за 14 часов. Этого хватает для credential stuffing на Steam и Discord.

Типичный стек частного сервера — PHP 5.x, MySQL, phpMyAdmin без ограничений доступа. Fingerprinting через nmap -sV вскрывает открытый 3306 и /phpmyadmin/ за минуты. UNION-based SQLi в форме логина (T1190) — и таблица accounts с хэшами на экране. Дальше офлайн: Hashcat, rockyou плюс геймерский wordlist с мутациями.

Bcrypt держится на EksBlowfish и встроенной 128-битной соли — rainbow tables бесполезны, каждый хэш крекается индивидуально. Но cost factor 10 — дефолт Go и PHP — даёт лишь 1024 итерации.

💡 4% от базы звучит ничтожно — но именно эти 1500 пар логин-пароль работают на сторонних сервисах.

Hackerlab Неделя 2: Виртуальный сервер - service enumeration через SSH и FTP

  • 1 147
  • 6
Терминал с выводом nmap: открытые порты SSH (22) и FTP (21) с версиями сервисов на виртуальном сервере


🔍 Открытые порты — это только начало. Реальный recon — выжать из каждого сервиса максимум до начала эксплуатации. Версия сервиса даёт known CVE. Баннер выдаёт конфигурацию. Anonymous FTP — готовые файлы. Неправильно настроенный SSH — вектор атаки.

Неделя 2 серии «Сетевая разведка за 30 дней». Цель — VDS, где админ настроил SSH и FTP «как-нибудь, потом исправлю». Разбираемся, как читать сервисы, а не просто видеть порты.

Инструменты недели: nmap -sV со скриптами ftp-anon и ssh-auth-methods, ручной anonymous FTP, ssh-audit для анализа слабых алгоритмов, nc для сырого banner-grab, searchsploit для поиска CVE по баннеру.

Старт: 8 июня 20:00 МСК. Дедлайн: 14 июня 23:59 МСК. Антиспойлер: до дедлайна обсуждаем подходы, не команды. После — writeup'ы открыты.

💡 SSH version banner отдаёт OS distribution — feature это или information disclosure? Разбираем в комментариях.
🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

Статистика форума

Темы
53 028
Сообщения
347 606
Пользователи
162 837
Новый пользователь
boy333