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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2025-55182-poc — CVE-2025-55182("React2Shell")에 대한 개념 증명입니다. React Server Components의 안전하지 않은 역직렬화를 통한 원격 코드 실행(RCE)을 보여주는 완전한 도커화 환경입니다. Vanilla React(Express) 및 Next.js용 취약한 대상과 사용자 지정 Python 익스플로잇 스크립트가 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/trax69/cve-2025-55182-poc
Vulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingLearning & EducationPayload DevelopmentBinary ExploitationLabs & Practice
GitHubtrax69/cve-2025-55182-poc

cve-2025-55182-poc

CVE-2025-55182("React2Shell")에 대한 개념 증명입니다. React Server Components의 안전하지 않은 역직렬화를 통한 원격 코드 실행(RCE)을 보여주는 완전한 도커화 환경입니다. Vanilla React(Express) 및 Next.js용 취약한 대상과 사용자 지정 Python 익스플로잇 스크립트가 포함되어 있습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-55182 (React2Shell) - 학술적 개념 증명

⚠️ 고지: 교육 목적으로만 사용 이 저장소는 심각한 취약점(CVSS 10.0)에 대한 실제 익스플로잇 코드를 포함하고 있습니다. 이 코드는 학술 연구, 보안 분석 및 교육 목적으로만 엄격히 사용됩니다. 본인이 소유하지 않거나 명시적 테스트 허가를 받지 않은 시스템에는 이 코드를 사용하지 마십시오. 저자는 어떠한 오용에도 책임을 지지 않습니다.

📄 개요

이 프로젝트는 React Server Components (RSC) 아키텍처에 존재하는 원격 코드 실행(RCE) 취약점인 CVE-2025-55182를 문서화하고 시연합니다. 흔히 "React2Shell"이라고 불리는 이 결함은 인증되지 않은 원격 공격자가 react-server에서 사용하는 "Flight" 직렬화 프로토콜을 조작하여 서버에서 임의의 코드를 실행할 수 있게 합니다.

이 실험실은 두 가지 시나리오에서 취약점을 분석할 수 있는 통제된 격리 Docker 환경을 제공합니다.

  1. 바닐라 RSC: react-server-dom-webpack과 Express를 사용한 원시 구현.
  2. Next.js: 취약한 버전의 Next.js App Router를 사용하는 표준 배포.

🏗️ 아키텍처

이 환경은 Docker Compose로 구축되며 개인 내부 네트워크(research-net)로 연결된 세 개의 격리 컨테이너로 구성됩니다.

서비스컨텍스트설명취약 구성 요소
vanilla-targetvanilla-rsc/RSC 프로토콜을 수동으로 구현하는 최소 Express 서버.[email protected]
nextjs-targetnextjs-app/App Router를 사용하는 표준 Next.js 애플리케이션.[email protected] (구현: react-server)
attackerexploit/익스플로잇 스크립트가 포함된 Python 환경.해당 없음

기술적 근본 원인

이 취약점은 Flight 프로토콜 파서 내부의 안전하지 않은 역직렬화(CWE-502) 에서 비롯됩니다. "가짜" 청크 구조를 포함하는 조작된 multipart 페이로드를 주입함으로써 공격자는 다음을 수행할 수 있습니다.

  1. 프로토타입 오염: promise 유사 객체의 .then 속성을 덮어씁니다.
  2. 가젯 체인 트리거: 서버가 내부 가젯 체인($B blob 참조)을 탐색하도록 강제합니다.
  3. 코드 실행: Function() 생성자에 도달하여 임의의 JavaScript(예: child_process.execSync)를 컴파일하고 실행합니다.

🚀 시작하기

사전 요구 사항

  • Docker 및 Docker Compose
  • Git

설치 및 배포

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

    root@kitploit:~
    git clone https://github.com/trax69/cve-2025-55182-poc.git
    cd cve-2025-55182-poc
    
  2. 실험실을 빌드하고 시작합니다:

    root@kitploit:~
    docker-compose up -d --build
    

    컨테이너가 완전히 초기화될 때까지 기다립니다. Next.js 컨테이너는 첫 번째 빌드를 완료하는 데 몇 분이 걸릴 수 있습니다.

💥 익스플로잇

익스플로잇 로직은 exploit/exploit.py에 캡슐화되어 있습니다. 호스트 머신(Python이 설치된 경우)에서 직접 또는 attacker 컨테이너에서 공격을 실행할 수 있습니다.

방법 A: 공격자 컨테이너에서 실행 (권장)

  1. 공격자 셸에 접근합니다:

    root@kitploit:~
    docker-compose exec attacker bash
    
  2. 요구 사항을 설치합니다:

    root@kitploit:~
    pip install -r requirements.txt
    
  3. 대상 A 공격 (바닐라 React):

    root@kitploit:~
    python exploit.py http://vanilla-target:4000/rsc vanilla
    
  4. 대상 B 공격 (Next.js):

    root@kitploit:~
    python exploit.py http://nextjs-target:3000/ nextjs
    

검증

익스플로잇은 대상 서버의 /tmp 디렉토리에 pwned.txt라는 파일을 생성하려고 시도합니다. 성공 여부를 확인하려면:

root@kitploit:~
# 바닐라 서버 확인
docker-compose exec vanilla-target ls -la /tmp/pwned.txt

# Next.js 서버 확인
docker-compose exec nextjs-target ls -la /tmp/pwned.txt

성공하면 파일 목록이 표시됩니다. 익스플로잇이 실패하면 파일이 존재하지 않습니다.

🛡️ 완화 방법

프로덕션 환경에서 이 취약점을 해결하려면:

  1. React: react-server-dom-webpack(및 관련 패키지)을 버전 19.0.1, 19.1.2 또는 19.2.1+ 로 업그레이드합니다.
  2. Next.js: v15.0.5+ 또는 v16.0.7+ 로 업그레이드합니다.
  3. WAF: multipart 본문에서 "$1:__proto__"와 같은 시그니처 또는 "$@"의 비정상적인 사용을 포함하는 요청을 차단하는 규칙을 구현합니다.

📚 참고 자료

  • (https://nvd.nist.gov/vuln/detail/CVE-2025-55182)
  • (https://github.com/msanft/CVE-2025-55182)

대학 프로젝트 - 보안 감사 및 취약점 연구

도구 다운로드