
CTFd v3.8.7
CTF-задачи по мере необходимости
Что такое CTFd?
CTFd — это фреймворк для Capture The Flag, ориентированный на простоту использования и настраиваемость. В нём есть всё необходимое для проведения CTF, и его легко настраивать с помощью плагинов и тем.

Возможности
- Создавайте собственные задания, категории, подсказки и флаги через интерфейс администратора
- Задания с динамической оценкой
- Поддержка открываемых заданий
- Архитектура плагинов заданий для создания собственных заданий
- Флаги на основе статических выражений и регулярных выражений
- Собственные плагины флагов
- Открываемые подсказки
- Загрузка файлов на сервер или в совместимое с Amazon S3 хранилище
- Ограничение попыток выполнения заданий и скрытие заданий
- Автоматическая защита от перебора
- Соревнования для отдельных участников и команд
- Участники могут играть по отдельности или объединяться в команды
- Таблица результатов с автоматическим разрешением равенства очков
- Скрытие результатов от публики
- Заморозка результатов в определённое время
- Графики результатов, сравнивающие топ-10 команд, и графики прогресса команд
- Система управления контентом на основе Markdown
- Поддержка электронной почты через SMTP и Mailgun
- Подтверждение адреса электронной почты
- Восстановление пароля
- Автоматическое начало и завершение соревнования
- Управление командами, их скрытие и блокировка
- Настройка всего через интерфейсы плагинов и тем
- Импорт и экспорт данных CTF для архивирования
- И многое другое...
Установка
Самый простой способ начать — использовать хостируемый экземпляр CTFd.
Для самостоятельного размещения обратитесь к документации CTFd — вариантам развёртывания и руководству «Начало работы».
Ниже представлена сводка нескольких вариантов самостоятельного размещения CTFd:
Docker
Вы можете использовать Docker Compose с помощью следующей команды из исходного репозитория:
docker compose up
Чтобы использовать готовые образы Docker:
docker run -p 8000:8000 -it ctfd/ctfd
Разработка
- Установите uv и выполните
uv sync, чтобы создать виртуальное окружение с установленными зависимостями.- Также можно установить в уже существующее окружение с помощью
pip install -r requirements.txt, который создаётся изuv.lock.
- Также можно установить в уже существующее окружение с помощью
- Измените CTFd/config.ini по своему усмотрению.
- Выполните
uv run serve.pyилиuv run flask runв терминале, чтобы перейти в режим отладки.
Живое демо
Поддержка
Для получения базовой поддержки вы можете присоединиться к сообществу MajorLeagueCyber:
Если вы предпочитаете коммерческую поддержку или у вас есть особый проект, свяжитесь с нами.
Управляемый хостинг
Хотите использовать CTFd, но не хотите заниматься управлением инфраструктурой? Ознакомьтесь с сайтом CTFd для получения управляемых развёртываний CTFd.
MajorLeagueCyber
CTFd тесно интегрирован с MajorLeagueCyber. MajorLeagueCyber (MLC) — это трекер статистики CTF, который предоставляет планирование событий, отслеживание команд и единый вход для событий.
Зарегистрировав своё CTF-событие в MajorLeagueCyber, пользователи смогут автоматически входить в систему, отслеживать свои индивидуальные и командные результаты, отправлять райтапы и получать уведомления о важных событиях.
Для интеграции с MajorLeagueCyber достаточно зарегистрировать аккаунт, создать событие и указать client ID и client secret в соответствующем разделе CTFd/config.py или в админ-панели:
OAUTH_CLIENT_ID = None
OAUTH_CLIENT_SECRET = None
Авторы
- Логотип — Laura Barbera
- Тема — Christopher Thompson
- Звук уведомления — Terrence Martin
