
Next.js 애플리케이션의 CVE-2025-55182 취약점 평가를 위한 고급 보안 테스트 도구입니다. 대화형 셸, 배치 스캐닝, WAF 우회, 포괄적인 보고 기능을 제공합니다.
R2S (React2Shell) 는 보안 연구원, 개발자, 침투 테스터가 Next.js 애플리케이션이 CVE-2025-55182에 취약한지 평가할 수 있도록 설계된 보안 테스트 도구입니다.
CVE-2025-55182는 특정 버전(예: 16.0.5)의 Next.js Server Actions에 영향을 미치는 심각한 취약점입니다. 이 취약점을 통해 공격자는 부적절하게 보호된 Server Actions를 통해 서버에서 임의의 명령을 실행할 수 있으며, 이는 원격 코드 실행(RCE)으로 이어집니다.
R2S는 애플리케이션에 이 문제가 있는지 확인하는 데 도움을 주어, 악의적인 행위자가 발견하기 전에 수정할 수 있게 합니다.
--windows)⚠️ 중요 경고: --windows 플래그를 잘못 사용하면 도구가 취약점을 제대로 판별하지 못할 수 있습니다.
--windows 사용 시기: 대상 서버가 Windows임을 100% 확신하는 경우에만 사용--windows를 사용하면 명령이 실패하고, 서버가 취약하더라도 도구가 "취약하지 않음"으로 보고할 수 있음--windows를 사용하지 마십시오예시:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
---
## ⚠️ 법적 고지
**중요: 이 도구를 사용하기 전에 반드시 읽으십시오**
1. **이 도구는 합법적인 보안 테스트용으로만 사용하십시오**
- ✅ 자신의 애플리케이션 테스트
- ✅ 서면 허가를 받은 애플리케이션 테스트
- ✅ 교육 목적 및 보안 연구
- ❌ **소유하지 않거나 테스트 허가가 없는 시스템에 절대 사용하지 마십시오**
- ❌ **악의적인 목적으로 절대 사용하지 마십시오**
2. **이 도구를 사용함으로써 다음에 동의하는 것으로 간주됩니다:**
- 소유하거나 명시적인 서면 허가를 받은 시스템에서만 사용할 것
- 무단 접근이 불법임을 이해할 것
- 자신의 행동에 대한 전적인 책임을 질 것
- 저자는 이 도구의 오용에 대해 책임을 지지 않습니다
3. **법적 결과:**
- 대부분의 국가에서 컴퓨터 시스템 무단 접근은 범죄입니다
- 형사 고발, 벌금, 구금될 수 있습니다
- 테스트 전에 항상 서면 허가를 받으십시오
4. **이 도구는 어떠한 종류의 보증 없이 "있는 그대로(AS IS)" 제공됩니다**
**만 18세 미만인 경우, 이 도구를 사용하기 전에 성인의 감독 및 허가를 받으십시오.**
---
## ✨ 기능
### 핵심 기능
- 🔍 **취약점 탐지** - 서버가 CVE-2025-55182에 취약한지 신속하게 테스트
- 💻 **대화형 셸** - HTTPS를 통한 완전한 대화형 셸 세션, 명령 기록 지원
- 📁 **파일 작업** - 디렉터리 목록, 파일 읽기, 파일/아카이브 내보내기
- 🔐 **비밀 정보 추출** - 애플리케이션 비밀 정보(.env 파일, 설정 파일) 읽기 시도
- 📄 **코드 추출** - 애플리케이션 소스 코드 읽기 시도
- 🖥️ **시스템 정보** - OS 정보, 호스트명, 사용자, 환경 변수 수집
### 고급 기능
- 🚀 **페이로드 자동 워밍** - 최상의 결과를 위해 페이로드를 자동 최적화
- ⚡ **병렬 실행** - 여러 명령을 동시에 실행
- 🎲 **페이로드 무작위화** - 동적 페이로드로 탐지 회피
- 🛠️ **익스플로잇 모듈** - Metasploit 스타일 모듈 시스템 (env_dump, file_search, network_scan, process_list)
- 🔄 **리디렉션 처리** - HTTP 리디렉션(301, 302, 303, 307, 308) 자동 추적
- 🎨 **아름다운 UI** - 읽기 쉬운 색상 코드 출력
- 📊 **포괄적 보고** - 작업별 포맷터를 사용해 JSON, HTML, TXT 형식으로 보고서 자동 저장
- ⚙️ **설정 시스템** - JSON 기반 설정 및 대화형 설정 패널
- 📦 **내보내기 기능** - 단일 파일 또는 전체 앱 디렉터리를 zip 아카이브로 내보내기
- 🔒 **WAF 우회** - 다양한 우회 기법 (⚠️ 보장되지 않음 - 아래 제한 사항 참고)
### 보고 및 로깅
- 📝 **자동 저장 보고서** - 사람이 읽을 수 있는 타임스탬프와 함께 `~/.r2s/reports/`에 보고서 자동 저장
- 📋 **작업별 형식** - 작업(셸, 테스트, 비밀 정보 등)에 따라 다양한 보고서 형식
- 📜 **명령 기록** - `~/.r2s/history`에 저장되는 영구 명령 기록
- 🔍 **감사 추적** - `~/.r2s/logs/audit.log`에 모든 작업의 상세 로깅
- 🎨 **HTML 보고서** - 다크/라이트 모드, 복사 버튼, 코드 블록을 지원하는 아름다운 HTML 보고서
---
## 📦 설치
### 옵션 1: 소스에서 빌드 (권장)
1. **저장소를 클론합니다:** ```bash
git clone https://github.com/zamdevio/r2s.git
cd r2s
pip install -r requirements.txt
python3 -m react2shell.main --help
r2s --help
---
## 🚀 빠른 시작
### 기본 취약점 테스트```bash
# Test if a server is vulnerable
r2s -u http://localhost:3000 -t
# With verbose output for more details
r2s -u http://localhost:3000 -t -v
⚠️ 중요: 대상이 Windows라고 확신하지 않는 한 --windows를 사용하지 마세요. Linux 서버에서 --windows를 사용하면 오탐(false negative)이 발생할 수 있습니다(도구가 취약한 서버라도 "취약하지 않음"으로 보고할 수 있음).
**https://r2s-arena.fly.dev**에서 안전한 테스트 환경을 제공합니다:```bash
r2s -u https://r2s-arena.fly.dev -t
### 로컬 테스트
취약한 앱을 로컬에서 실행하는 방법은 [`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/main/nextjs/README.md)를 참조하세요.
---
## 📚 사용 예제
### 빠른 명령어 참조
**가장 일반적인 명령어:**
- `r2s -u URL -t` - 취약점 테스트 (가장 일반적)
- `r2s -u URL --shell` - 대화형 셸 시작
- `r2s --targets FILE -t` - 여러 대상 일괄 스캔
- `r2s -u URL --system-info` - 시스템 정보 확인
- `r2s -u URL --secrets` - 비밀 읽기 시도
- `r2s -u URL --export-archive` - 전체 앱을 zip으로 내보내기
**⚠️ 참고**: 대상이 Windows가 아닌 경우 `--windows`를 사용하지 마세요!
---