
대상 웹 서비스에서 CVE-2025-55182 및 CVE-2025-66478의 존재를 탐지하는 스캐너.
React Server Components(RSC) 및 Next.js 원격 코드 실행 취약점(CVE-2025-55182 및 CVE-2025-66478)을 탐지하는 안전하고 비침습적인 스캐너입니다.
이 스캐너는 조직이 자신의 웹 서비스가 React2Shell 취약점에 노출되어 있는지 식별할 수 있도록 돕습니다. 이 취약점은 React Server Components와 Next.js를 사용하는 애플리케이션에 영향을 미치며, 공격자가 특수하게 조작된 multipart 양식 데이터를 통해 원격 코드 실행을 달성할 수 있게 합니다.
중요: 이 스캐너는 안전한 부수 채널(side-channel) 탐지 방법만 사용하며 대상 시스템에서 코드를 실행하지 않습니다.
안전한 탐지 방법
유연한 스캔 옵션
/_next, /api)출력 옵션
pip install -r requirements.txt
또는 수동으로 설치:
pip install requests tqdm urllib3
단일 URL 스캔:
python scanner.py -u https://example.com
파일에서 여러 호스트 스캔:
python scanner.py -l hosts.txt
사용자 지정 경로로 스캔:
python scanner.py -u https://example.com --path /_next --path /api
파일에서 경로 목록으로 스캔:
python scanner.py -u https://example.com --path-file paths.txt
사용자 지정 헤더:
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "X-Custom: value"
멀티스레드 스캔:
python scanner.py -l hosts.txt -t 20
결과를 JSON으로 내보내기:
python scanner.py -l hosts.txt -o results.json
모든 결과 내보내기(취약하지 않은 호스트 포함):
python scanner.py -l hosts.txt -o results.json --all-results
자세한(verbose) 모드(모든 호스트에 대한 세부 정보 표시):
python scanner.py -l hosts.txt -v
조용한(quiet) 모드(취약한 호스트만 표시):
python scanner.py -l hosts.txt -q
색상 비활성화:
python scanner.py -l hosts.txt --no-color
한 줄에 하나의 호스트. #로 시작하는 줄은 무시됩니다.
https://example.com
http://test.example.org
another-site.com
# 이것은 주석입니다
한 줄에 하나의 경로. 경로는 앞에 /가 없으면 자동으로 추가됩니다.
/_next
/api
/actions
# 주석 줄은 무시됩니다
스캐너는 다음과 같은 비침습적 탐지 방법을 사용합니다:
JavaScript 오류 메시지
SyntaxError - 양식 데이터의 잘못된 JSON 파싱을 나타냄Unexpected token - 취약한 RSC 역직렬화를 시사ReferenceError / TypeError - 안전하지 않은 객체 속성 접근을 드러냄RSC 특정 오류 응답
text/x-component 콘텐츠 유형을 가진 HTTP 500 상태 코드Vary: RSC, Next-Router-State-Tree){"digest":"..."})$@, 오류 객체)스캐너는 상세한 오류 메시지(이전 버전)와 구조화된 RSC 오류 응답(최신 버전)을 모두 탐지하여 다양한 Next.js 구현에 걸쳐 포괄적인 적용 범위를 보장합니다.
중요: 이 방법은 대상 시스템에서 어떤 코드도 실행하지 않습니다. 오류 응답을 관찰하여 시스템이 취약한지 여부만 감지합니다.
python scanner.py -u https://myapp.com
# 모든 도메인이 포함된 호스트 파일 생성
python scanner.py -l organization-hosts.txt -t 20 -o scan-results.json
# 공통 Next.js 엔드포인트로 paths.txt 생성
python scanner.py -l hosts.txt --path-file paths.txt -o results.json
python scanner.py -u https://myapp.com -H "Cookie: session=abc123" -H "Authorization: Bearer token"
스캐너는 다음을 감지하면 호스트를 VULNERABLE로 표시합니다:
스캐너가 취약점을 감지하면 다음을 의미합니다:
0: 취약점이 발견되지 않음1: 하나 이상의 취약점이 감지됨-t)를 조정하십시오애플리케이션이 취약한 것으로 발견된 경우:
즉시 조치:
장기 보안:
참고 자료:
이 도구는 승인된 보안 테스트 전용입니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 저자는 이 프로그램의 오용 또는 손해에 대해 책임을 지지 않습니다.
| 옵션 | 설명 |
|---|
-u, --url URL | 스캔할 단일 URL |
-l, --list FILE | 스캔할 호스트 목록이 포함된 파일 |
-t, --threads N | 동시 스레드 수(기본값: 10) |
--timeout N | 요청 제한 시간(초)(기본값: 10) |
-o, --output FILE | 결과 출력 파일(JSON 형식) |
--all-results | 취약한 호스트뿐만 아니라 모든 결과 저장 |
-k, --insecure | SSL 인증서 검증 비활성화 |
-H, --header HEADER | 사용자 지정 헤더(여러 번 사용 가능) |
-v, --verbose | 자세한 출력(모든 호스트에 대한 세부 정보 표시) |
-q, --quiet | 조용한 모드(취약한 호스트만 표시) |
--no-color | 색상 출력 비활성화 |
--path PATH | 테스트할 사용자 지정 경로(여러 번 사용 가능) |
--path-file FILE | 테스트할 경로 목록이 포함된 파일 |