
Next.js와 손상된 미들웨어...해킹을 시도해 보세요..!
이것은 cve-2025-29927이 실제로 어떻게 작동하는지 설명하기 위해 [create-next-app]으로 부트스트랩된 Next.js 샘플 프로젝트입니다. (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 또는 다른 브라우저 확장 프로그램을 사용하여 헤더를 수정하고 페이로드로 미들웨어를 악용할 수 있습니다.

next.js 애플리케이션이 미들웨어를 사용하면 runMiddleware 함수가 호출되는데, 이 함수는 주요 기능 외에도 x-middleware-subrequest 헤더의 값을 검색하여 미들웨어를 적용해야 하는지 여부를 판단하는 데 사용합니다. 헤더 값은 콜론 문자(:)를 구분자로 사용하여 분할되어 목록을 만들고, 그 다음 이 목록에 middlewareInfo.name 값이 포함되어 있는지 확인합니다.
즉, 요청에 올바른 값의 x-middleware-subrequest 헤더를 추가하면 미들웨어는 그 목적이 무엇이든 완전히 무시되며, 요청은 NextResponse.next()를 통해 전달되어 미들웨어의 어떠한 영향도 받지 않고 원래 목적지까지 여정을 완료합니다. 이 헤더와 그 값은 규칙을 재정의할 수 있는 범용 키 역할을 합니다. 이 시점에서 우리는 방금 엄청난 무언가를 발굴했다는 것을 이미 알 수 있습니다.
Uploading next-middleware-2.png…
여기서는 "next": "14.0.4"를 사용하고 있다는 점을 참고하세요.