
RSC/Next.js RCE (CVE-2025-55182 및 CVE-2025-66478)를 위한 고충실도 탐지 메커니즘
Next.js 애플리케이션에서 React Server Components를 사용하는 CVE-2025-55182 및 CVE-2025-66478을 탐지하기 위한 명령줄 도구입니다.
취약점 및 탐지 방법론에 대한 기술적 세부사항은 블로그 게시물을 참조하세요: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
기본적으로 스캐너는 결정적 수학 연산(41*271 = 11111)을 실행하는 RCE 개념 증명 페이로드가 포함된 조작된 multipart POST 요청을 전송합니다. 취약한 호스트는 X-Action-Redirect 응답 헤더에 결과를 /login?a=11111로 반환합니다.
스캐너는 기본적으로 루트 경로(/)를 테스트합니다. 사용자 정의 경로를 테스트하려면 --path 또는 --path-file을 사용하세요. 취약하지 않은 경우 동일 호스트 리디렉션(예: /에서 /en/으로)을 따라 리디렉션 대상을 테스트합니다. 교차 출처 리디렉션은 따르지 않습니다.
--safe-check 플래그는 대상에서 코드를 실행하지 않고 부채널 지표(특정 오류 다이제스트가 포함된 500 상태 코드)에 의존하는 대체 탐지 방법을 사용합니다. RCE 실행이 바람직하지 않은 경우 이 모드를 사용하세요.
--waf-bypass 플래그는 multipart 요청 본문 앞에 임의의 정크 데이터를 추가합니다. 이는 요청 본문의 첫 부분만 분석하는 WAF 콘텐츠 검사를 회피하는 데 도움이 될 수 있습니다. 기본 크기는 128KB이며 --waf-bypass-size로 구성 가능합니다. WAF 우회가 활성화되면 시간 제한이 자동으로 20초로 증가합니다(명시적으로 설정되지 않은 경우).
--vercel-waf-bypass 플래그는 Vercel WAF 보호를 우회하도록 특별히 설계된 대체 페이로드 변형을 사용합니다. 추가 양식 필드가 있는 다른 multipart 구조를 사용합니다.
--windows 플래그는 Windows에서 실행되는 대상의 경우 페이로드를 Unix 셸(echo $((41*271)))에서 PowerShell(powershell -c "41*271")로 전환합니다.
pip install -r requirements.txt
단일 호스트 스캔:
python3 scanner.py -u https://example.com
호스트 목록 스캔:
python3 scanner.py -l hosts.txt
여러 스레드로 스캔하고 결과 저장:
python3 scanner.py -l hosts.txt -t 20 -o results.json
사용자 정의 헤더로 스캔:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
안전한 부채널 탐지 사용:
python3 scanner.py -u https://example.com --safe-check
Windows 대상 스캔:
python3 scanner.py -u https://example.com --windows
WAF 우회로 스캔:
python3 scanner.py -u https://example.com --waf-bypass
사용자 정의 경로 스캔:
python3 scanner.py -u https://example.com --path /_next
python3 scanner.py -u https://example.com --path /_next --path /api
python3 scanner.py -u https://example.com --path-file paths.txt
-u, --url 단일 URL 확인
-l, --list 호스트가 포함된 파일 (한 줄에 하나)
-t, --threads 동시 스레드 수 (기본값: 10)
--timeout 요청 시간 제한 (초) (기본값: 10)
-o, --output 결과 출력 파일 (JSON)
--all-results 취약한 호스트뿐만 아니라 모든 결과 저장
-k, --insecure SSL 인증서 검증 비활성화
-H, --header 사용자 정의 헤더 (여러 번 사용 가능)
-v, --verbose 취약한 호스트에 대한 응답 세부 정보 표시
-q, --quiet 취약한 호스트만 출력
--no-color 색상 출력 비활성화
--safe-check RCE PoC 대신 안전한 부채널 탐지 사용
--windows Unix 셸 대신 Windows PowerShell 페이로드 사용
--waf-bypass WAF 콘텐츠 검사를 우회하기 위해 정크 데이터 추가
--waf-bypass-size 정크 데이터 크기 (KB) (기본값: 128)
--path 테스트할 사용자 정의 경로 (여러 번 사용 가능)
--path-file 테스트할 경로가 포함된 파일 (한 줄에 하나)
RCE PoC는 원래 @maple3142에 의해 공개되었습니다. 저희는 작동하는 PoC를 공개한 그들의 작업에 매우 감사드립니다.
이 도구는 원래 RCE를 탐지하는 안전한 방법으로 구축되었습니다. 이 기능은 --safe-check, 즉 "안전 탐지" 모드를 통해 여전히 사용할 수 있습니다.
결과는 터미널에 출력됩니다. -o를 사용하면 취약한 호스트가 확인을 위한 전체 HTTP 요청 및 응답이 포함된 JSON 파일에 저장됩니다.