
React2Shell (CVE-2025-55182) 익스플로잇
취약한 React Server Components 및 Next.js 애플리케이션의 치명적인 RCE 취약점(CVE-2025-55182)을 악용하기 위한 대화형 셸을 제공하는 Python 스크립트입니다. 이 익스플로잇은 인증되지 않은 원격 코드 실행을 허용하는 역직렬화 결함을 대상으로 합니다. WAF 우회 기법을 추가할 수 있는 모듈형 시스템을 포함합니다.
[!NOTE] 이 익스플로잇은 취약한 RSC 프로토콜 엔드포인트와 상호 작용하도록 설계되었습니다. 실행 결과는 서버의 응답 메커니즘을 통해 캡처됩니다. 출력이 없는 명령은
(empty)를 반환합니다.
[!CAUTION] 이 코드는 연구 및 교육 목적으로만 제공됩니다. CVE-2025-55182 취약점을 이해하고, 탐지하며, 수정하는 데 도움을 주기 위한 것입니다. 명시적인 허가 없이 시스템에 사용하지 마십시오.
이 스크립트의 사용은 사용자 본인의 책임이며, 작성자는 오용 또는 의도하지 않은 결과에 대해 어떠한 책임도 지지 않습니다.
이 코드를 사용함으로써 사용자는 다음 사항을 인지하고 동의하는 것입니다:
- 사용자는 이 스크립트 사용으로 인해 발생하는 모든 법적 결과에 대해 전적인 책임을 집니다.
- 사용자는 이 코드 사용으로 인해 발생하는 손해, 손실 또는 법적 조치에 대해 작성자에게 책임을 묻지 않습니다.
- 사용자는 모든 관련 법률 및 규정을 준수하는 데 동의합니다.
- 사용자는 허가 없이 시스템에 이 스크립트를 사용하는 것이 법률 및 서비스 약관을 위반할 수 있으며, 심각한 제재를 초래할 수 있음을 인지합니다.
- 사용자는 이 코드를 사용하기 전에 자체 법률 자문가와 상담할 것을 권고받습니다.
이 익스플로잇은 동적 WAF 우회 모듈 시스템을 갖추고 있습니다. 모듈은 waf_modules 디렉터리에 개별 Python 파일로 저장됩니다. 각 모듈은 기본 요청 본문과 헤더를 가져와 우회에 필요한 대로 수정한 후 새로운 body, headers를 반환하는 modify_request(body, headers) 함수를 정의해야 합니다.
waf_modules 디렉터리에 modify_request 함수를 포함하는 새 Python 파일(예: bypass_custom.py)을 만듭니다.bypass_custom.py의 경우 --bypass-custom)을 확인하려면 --help 플래그로 스크립트를 실행합니다. 해당 플래그를 사용하여 모듈을 활성화합니다.예시: Vercel 배포에 효과적일 수 있는 기법을 구현한 bypass_vercel.py 모듈이 예제로 포함되어 있습니다.
--modify-request)이 스크립트는 HTTP 요청에 사용되는 requests.Session 객체의 특정 속성을 직접 수정할 수 있게 해줍니다. 이를 통해 SSL 검증, 타임아웃 및 잠재적으로 다른 세션 수준 설정을 세밀하게 제어할 수 있습니다.
--modify-request <KEY> <VALUE> 플래그를 사용합니다. <KEY>는 requests.Session 객체의 속성(예: verify, timeout)에 해당합니다.<VALUE>에 대해 기본적인 유형 변환을 시도합니다. true/false는 불리언이 되고, 숫자 문자열은 정수 또는 부동 소수점이 되며, 그 외에는 문자열로 유지됩니다.--modify-request verify True--modify-request verify False (이전의 --insecure 플래그와 동일)python CVE-2025-55182.py --help-modify-request를 사용하세요.requirements.txt 참조)python -m venv venv 및 source venv/bin/activate, Windows에서는 venv\Scripts\activate).
pip install -r requirements.txt
waf_modules 디렉터리 생성:
mkdir waf_modules
bypass_vercel.py)을 이 디렉터리 안에 배치합니다.취약한 환경 설정(테스트 전용):
docker run --rm -p 127.0.0.1:3000:3000 ghcr.io/l4rm4nd/cve-2025-55182:latest
스크립트 실행:
python CVE-2025-55182.py --help # 모든 옵션(WAF 우회 포함)을 보려면
# 우회 모듈 사용 예시:
python CVE-2025-55182.py --host 127.0.0.1 --port 3000 --endpoint / --bypass-vercel
명령줄 인수를 사용하지 않으면 스크립트가 호스트, 포트, 엔드포인트를 대화식으로 입력하라는 메시지를 표시합니다.
셸과 상호 작용:
exit 또는 quit를 입력하여 셸 세션을 종료합니다.