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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-29927-Proof-of-Concept — Задача Capture the Flag: CVE-2025-29927 в сочетании с уязвимостью внедрения команд | Kitploit
Инструменты/GitHubGitHub/si-ni/cve-2025-29927-proof-of-concept
Взлом паролейПовышение привилегийАнализ уязвимостейЭксплуатация веб-приложенийCTFКомандование и УправлениеОбучение и Образование
GitHubsi-ni/cve-2025-29927-proof-of-concept

Популярное

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

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

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

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

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

CVE-2025-29927-Proof-of-Concept

Задача Capture the Flag: CVE-2025-29927 в сочетании с уязвимостью внедрения команд

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

Прохождение

Шаг 1 (5 мин)

Подсказка Какие сетевые службы открыты на цельном хосте?

— — —

Решение

    kali@kali:~$ nmap <TARGET_IP>
    kali@kali:~$ nmap -sC -sV <TARGET_IP> -p <TARGET_PORTS>
  

Шаг 2 (5 мин)

Подсказка 1 Главная страница показывает только страницу входа, но веб-серверы часто раскрывают дополнительные пути.
Подсказка 2 Попробуйте использовать инструмент для перебора каталогов, например Gobuster или DirBuster.

— — —

Решение

    kali@kali:~$ gobuster dir -u http://<TARGET_IP>:<TARGET_PORT>/ -w /usr/share/wordlists/dirb/common.txt
  

    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    api                  (Status: 307) [Size: 35] [--> /api/auth/signin?callbackUrl=%2Fapi]
    apis                 (Status: 307) [Size: 36] [--> /api/auth/signin?callbackUrl=%2Fapis]
    cgi-bin/             (Status: 308) [Size: 8] [--> /cgi-bin]
    dashboard            (Status: 307) [Size: 41] [--> /api/auth/signin?callbackUrl=%2Fdashboard]
    favicon.ico          (Status: 200) [Size: 25931]
    login                (Status: 200) [Size: 6252]
    Progress: 4613 / 4613 (100.00%)
    ===============================================================
    Finished
    ===============================================================
  

Шаг 3 (20 мин)

Подсказка 1 Страница /dashboard перенаправляет на /login. Сможете ли вы найти на странице входа какую-нибудь информацию, которая позволит обойти перенаправление?
изображение
Подсказка 2 Сможете ли вы найти что-нибудь для Next.js версии 15.2.2?
Подсказка 3 Изучите CVE-2025-29927. Используйте прокси-сервер Burp Suite, чтобы перехватить запрос и изменить заголовки запроса перед отправкой.

— — —

Решение

Предыстория

Многие веб-приложения защищают конфиденциальные маршруты (например, /dashboard) с помощью промежуточного ПО (middleware). Промежуточное ПО проверяет запрос, проверяет сессионные cookie и подтверждает права пользователя. Если проверка не удаётся, middleware обычно перенаправляет пользователя на /login.

Механизм уязвимости

CVE-2025-29927 — это дефект проектирования в обработке middleware Next.js. Он позволяет злоумышленнику полностью обойти защиту middleware, используя заголовок x-middleware-subrequest. Next.js использует этот заголовок внутренне, чтобы предотвратить бесконечные циклы middleware. При обработке запроса функция runMiddleware проверяет заголовки запроса:
  • Если x-middleware-subrequest присутствует
  • и его значение содержит имя middleware
  • то Next.js пропускает выполнение middleware и передаёт запрос напрямую
Это было задумано как внутренняя оптимизация, но дефект в том, что внешние пользователи также могут установить этот заголовок.

Уязвимый код


    const subreq = params.request.headers["x-middleware-subrequest"];
    const subrequests = typeof subreq === "string" ? subreq.split(":") : [];
    if (subrequests.includes(middlewareInfo.name)) {
      result = {
        response: NextResponse.next(),
        waitUntil: Promise.resolve(),
      }
      continue;
    }
  

Для версий 13.2.0 и новее

Next.js ввёл максимальную глубину рекурсии для выполнения middleware. Это было реализовано для предотвращения бесконечных циклов, но не влияет на уязвимость.
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
Используя этот заголовок, мы сообщаем middleware: «Это уже запрос, сгенерированный middleware — не выполняйте middleware снова».
изображение изображение

Исправление

Теперь Next.js удаляет заголовок x-middleware-subrequest из всех входящих внешних запросов перед запуском middleware. Заголовок считается доверенным только тогда, когда он создан внутри среды выполнения Next.js при легитимном цепочечном вызове middleware. Конкретно, значение x-middleware-subrequest теперь проверяется на соответствие случайно сгенерированной шестнадцатеричной строке, что гарантирует, что только легитимные внутренние сессионные запросы проходят проверку авторизации. Таким образом, даже если злоумышленник отправляет заголовок, Next.js теперь может отличить настоящий внутренний подзапрос (который содержит правильный случайно сгенерированный токен) от поддельного, отправленного внешним злоумышленником.

Шаг 4 (15 мин)

Подсказка 1 Загрузка файлов также защищена middleware, поэтому вы должны отправлять заголовок из шага 3 с каждым запросом.
Подсказка 2 Пользовательский ввод всегда представляет высокий риск. Что ещё, кроме содержимого файла, считается пользовательским вводом здесь? И сможете ли вы найти на странице какую-нибудь информацию, которая раскрывает, как обрабатывается изображение?
Подсказка 3 Попробуйте вредоносные имена файлов. https://www.revshells.com/

— — —

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