
Next.js и испорченный middleware...ПОПРОБУЙ ВЗЛОМАТЬ ЕГО..!
Это пример проекта Next.js, созданного с помощью [create-next-app] для практического объяснения того, как работает cve-2025-29927. (https://nextjs.org/docs/app/api-reference/cli/create-next-app).
Сначала запустите сервер разработки:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Откройте http://localhost:3000 в вашем браузере, чтобы увидеть результат.
Теперь вы можете использовать Burp или другие расширения браузера, чтобы изменять заголовки и эксплуатировать Middleware с помощью полезной нагрузки.

Когда приложение next.js использует middleware, вызывается функция runMiddleware, которая — помимо своей основной функции — извлекает значение заголовка x-middleware-subrequest и использует его, чтобы определить, нужно ли применять middleware. Значение заголовка разбивается на список с использованием символа двоеточия (:) в качестве разделителя, а затем проверяется, содержит ли этот список значение middlewareInfo.name.
Это означает, что если мы добавим заголовок x-middleware-subrequest с правильным значением к нашему запросу, middleware — независимо от его назначения — будет полностью проигнорирован, а запрос будет перенаправлен через NextResponse.next() и завершит свой путь к исходному месту назначения, не испытывая никакого влияния со стороны middleware. Этот заголовок и его значение действуют как универсальный ключ, позволяющий переопределять правила. На этом этапе мы уже понимаем, что только что обнаружили нечто безумное.
Uploading next-middleware-2.png…
Обратите внимание, что здесь мы используем "next": "14.0.4".