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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
React2Shell-Kingdom — "옛날 옛적에, Reactland의 성은 모든 Flight 메시지를 신뢰했습니다... 그런데 사기꾼이 나타났습니다." 이야기 형식의 CVE-2025-55182 (React2Shell) 데모 - 보안 교육을 위한 중세 테마의 취약한 React Server Components 앱. | Kitploit
도구/GitHubGitHub/mycompanyorganization/react2shell-kingdom
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubmycompanyorganization/react2shell-kingdom

React2Shell-Kingdom

"옛날 옛적에, Reactland의 성은 모든 Flight 메시지를 신뢰했습니다... 그런데 사기꾼이 나타났습니다." 이야기 형식의 CVE-2025-55182 (React2Shell) 데모 - 보안 교육을 위한 중세 테마의 취약한 React Server Components 앱.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
7개월 전아직 검토되지 않음

React CVE-2025-55182 취약점 데모 프로젝트

⚠️ 보안 경고

이 프로젝트는 React Server Components 19.1.1의 심각한 RCE 취약점(CVE-2025-55182 / React2Shell)을 시연합니다.

  • 교육 및 보안 연구 목적으로만 사용하세요
  • 절대 프로덕션 환경에 배포하거나 신뢰할 수 없는 네트워크에 노출하지 마세요
  • 격리되고 통제된 환경에서만 실행하세요
  • 테스트 전에 적절한 권한을 받았는지 확인하세요

개요

이 프로젝트는 React Server Components 19.1.1의 심각한 원격 코드 실행(RCE) 취약점인 CVE-2025-55182(React2Shell)를 시연합니다. 애플리케이션은 다음을 포함합니다:

  • 사용자 이름/비밀번호 인증이 있는 단일 페이지 웹사이트
  • React Server Components(RSC) 구현
  • RSC Flight 프로토콜 엔드포인트(취약)
  • Docker 배포 구성
  • 취약점을 시연하는 POC 익스플로잇 페이로드

프로젝트 구조

root@kitploit:~
react-cve-demo/
├── package.json              # react-server-dom-webpack이 포함된 React 19.1.1
├── server.js                 # RSC 지원을 위한 커스텀 React 서버
├── src/
│   ├── App.jsx              # 메인 React 컴포넌트
│   ├── Login.jsx            # 로그인 페이지 컴포넌트
│   ├── Dashboard.jsx        # 보호된 페이지 컴포넌트
│   └── server-components/   # 서버 컴포넌트
│       └── AuthServer.jsx   # 서버 측 인증 로직
├── data/
│   └── users.json           # 사용자 자격 증명 저장소
├── Dockerfile               # Docker 컨테이너화
├── docker-compose.yml       # Docker Compose 설정
├── .dockerignore
├── exploit/
│   ├── poc.js              # POC 익스플로잇 스크립트 (Node.js)
│   └── poc.sh              # POC 익스플로잇 스크립트 (bash/curl)
└── README.md               # 이 파일

사전 요구 사항

  • Node.js 18+
  • Docker 및 Docker Compose (선택 사항, 컨테이너 배포용)
  • npm 또는 yarn

설치

로컬 개발

  1. 이 저장소를 클론하거나 다운로드하세요
  2. 의존성 설치:
    root@kitploit:~
    npm install
    
  3. 서버 시작:
    root@kitploit:~
    npm start
    
  4. http://localhost:3000 에서 애플리케이션에 접속하세요

Docker 배포

  1. Docker Compose로 빌드 및 실행:

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

    또는 수동으로 빌드 및 실행:

    root@kitploit:~
    docker build -t react-cve-demo .
    docker run -p 3000:3000 react-cve-demo
    
  2. http://localhost:3000 에서 애플리케이션에 접속하세요

사용 흐름

정상 인증 흐름

  1. 애플리케이션 접속: http://localhost:3000 으로 이동
  2. 로그인 페이지: 로그인 양식이 표시됩니다
  3. 기본 자격 증명:
    • 사용자 이름: admin, 비밀번호: securepassword123
    • 사용자 이름: user1, 비밀번호: password123
  4. 로그인 성공: 보호된 대시보드로 리디렉션됩니다
  5. 로그아웃: 로그아웃 버튼을 클릭하면 로그인 페이지로 돌아갑니다

취약점 시연

취약점은 RSC Flight 프로토콜의 역직렬화 메커니즘에 존재합니다. 익스플로잇은:

  1. 서버 함수 엔드포인트를 대상으로 악의적인 직렬화 페이로드를 생성합니다
  2. 안전하지 않은 역직렬화를 이용하여 임의의 JavaScript를 실행합니다
  3. JSON 파일에 새로운 사용자 항목을 생성합니다
  4. 새 자격 증명을 사용하여 인증을 우회합니다

POC 익스플로잇 실행

옵션 1: Node.js 스크립트

root@kitploit:~
node exploit/poc.js

또는 사용자 정의 대상 URL:

root@kitploit:~
TARGET_URL=http://localhost:3000 node exploit/poc.js

옵션 2: Bash 스크립트

root@kitploit:~
./exploit/poc.sh

또는 사용자 정의 대상 URL:

root@kitploit:~
TARGET_URL=http://localhost:3000 ./exploit/poc.sh

옵션 3: 수동 curl 명령어

한 줄 버전:

root@kitploit:~
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'

여러 줄 버전(가독성 향상):

root@kitploit:~
curl -X POST http://localhost:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'

참고: 복사하여 붙여넣기 가능한 한 줄 명령어는 exploit/curl-oneline.txt 에도 있습니다.

익스플로잇 실행 후

익스플로잇을 실행한 후:

  1. 익스플로잇은 data/users.json 에 새 사용자를 생성합니다
  2. 이제 새로 생성된 자격 증명으로 로그인할 수 있습니다:
    • 사용자 이름: hacker
    • 비밀번호: hacked123
  3. 이는 취약점이 인증을 어떻게 우회할 수 있는지 보여줍니다

기술 세부 사항

취약점 (CVE-2025-55182)

취약점은 React Server Components 19.1.1에 존재하며, 특히 다음 부분에 있습니다:

  • 구성 요소: react-server-dom-webpack
  • 버전: 19.1.1 (취약)
  • 문제: RSC Flight 프로토콜의 안전하지 않은 역직렬화
  • 영향: 원격 코드 실행 (RCE)
  • CVSS: 심각

서버 구현

서버(server.js)는 다음을 구현합니다:

  • Express.js HTTP 서버
  • RSC Flight 프로토콜 엔드포인트 (/rsc)
  • 서버 함수 실행 (취약한 엔드포인트)
  • 세션 관리
  • 정적 파일 제공

인증 시스템

  • 로그인 컴포넌트: 사용자 이름/비밀번호를 위한 클라이언트 측 양식
  • Auth 서버 컴포넌트: 서버 측 인증 로직
  • 사용자 저장소: 자격 증명을 저장하는 JSON 파일 (data/users.json)
  • 보호된 라우트: 대시보드는 인증 필요

RSC Flight 프로토콜

RSC Flight 프로토콜 엔드포인트는 다음을 수락합니다:

  • action: "callServerFunction": 서버 함수 실행
  • action: "renderRSC": React Server Components 렌더링

취약점은 서버 함수 호출이 역직렬화되고 실행되는 방식에 존재합니다.

보안 고려 사항

⚠️ 중요 경고

  1. 격리된 환경: 통제되고 격리된 환경에서만 실행하세요
  2. 프로덕션 사용 금지: 취약한 코드를 프로덕션에 절대 배포하지 마세요
  3. 네트워크 격리: 신뢰할 수 없는 네트워크에 노출하지 마세요
  4. 교육 목적: 보안 연구 및 교육 목적으로만 사용하세요
  5. 법적 준수: 테스트 전에 적절한 권한을 받았는지 확인하세요

모범 사례

  • 테스트에는 전용 VM 또는 컨테이너를 사용하세요
  • localhost 외부의 네트워크 접근을 비활성화하세요
  • 테스트 환경에 민감한 데이터를 저장하지 마세요
  • 시연 후 테스트 데이터를 정리하세요
  • 책임 있는 공개 관행을 따르세요

의존성

  • React: 19.1.1 (취약한 버전)
  • react-server-dom-webpack: 19.1.1 (취약한 패키지)
  • Express.js: ^4.18.2
  • express-session: ^1.17.3
  • Node.js: 18+

문제 해결

서버가 시작되지 않음

  • 3000번 포트가 이미 사용 중인지 확인하세요
  • Node.js 버전이 18 이상인지 확인하세요
  • 모든 의존성이 설치되었는지 확인하세요 (npm install)

익스플로잇이 작동하지 않음

  • 서버가 실행 중인지 확인하세요
  • RSC 엔드포인트에 접근 가능한지 확인하세요
  • 서버 로그에서 오류를 확인하세요
  • 익스플로잇 스크립트에 적절한 권한이 있는지 확인하세요

Docker 문제

  • Docker가 실행 중인지 확인하세요
  • Docker Compose 버전 호환성을 확인하세요
  • 3000번 포트를 사용할 수 있는지 확인하세요
  • Docker 로그 확인: docker-compose logs

참고 자료

  • CVE-2025-55182: React2Shell 취약점
  • React Server Components 문서
  • RSC Flight 프로토콜 사양

라이선스

MIT 라이선스 - 교육 목적으로만 사용

면책 조항

이 소프트웨어는 교육 및 보안 연구 목적으로만 제공됩니다. 저자와 기여자는 이 소프트웨어의 오용이나 손해에 대해 책임지지 않습니다. 사용에 따른 책임은 본인에게 있으며, 모든 관련 법규를 준수하시기 바랍니다.

도구 다운로드