
Преднамеренно уязвимое приложение на Next.js, демонстрирующее обход аутентификации CVE-2025-29927 через обход межсетевого экрана на уровне middleware. Разработано для исследований в области безопасности, лабораторий пентестинга и демонстраций ответственного раскрытия с бэкендом MySQL и аутентификацией JWT.
Вот чистый и информативный README.md для вашего репозитория GitHub, в котором объясняется, что это уязвимое Next.js приложение для CVE-2025-29927, и содержится ссылка на ваше видео по настройке на YouTube:
Это уязвимое Next.js приложение, которое демонстрирует CVE-2025-29927 — уязвимость безопасности, выявленную в веб-приложениях, использующих Next.js, связанную с некорректной обработкой входных данных или недостатками контроля доступа.
В проекте используется бэкенд MySQL и аутентификация JWT. Он предназначен исключительно для образовательных и тестовых целей — например, для лабораторий по тестированию на проникновение, демонстрации ответственного раскрытия уязвимостей и исследований в области безопасности.
Пароли для тестовых учетных записей в users.csv — "123456", а секретный ключ для аутентификации JWT "JWT_SECRET" добавлен в файл ".env.local" и был намеренно опубликован в этом публичном репозитории; этот JWT-токен не используется в продакшене. Это упрощает развертывание и тестирование.
Вы также можете заменить секретный ключ для JWT на свой сгенерированный, но файл .env должен существовать для работы аутентификации JWT.
⚠️ Отказ от ответственности: Этот проект намеренно уязвим. НЕ разворачивайте его в производственных средах. Используйте только в изолированных или контролируемых условиях для образовательных целей.
Посмотрите полное руководство по установке и демонстрацию на YouTube, как настроить этот проект:
▶️ [https://www.youtube.com/watch?v=Akb3R34QnM8&t=482s]
Посмотрите полную демонстрацию на YouTube, как эксплуатируется уязвимость:
▶️ [https://www.youtube.com/watch?v=3OPWodc2lx4]
git clone https://github.com/enochgitgamefied/NextJS-CVE-2025-29927.git
cd NextJS-CVE-2025-29927
npm install
Создайте базу данных MySQL и обновите параметры подключения в:
/database/index.js
Самый простой способ — использовать CSV-файлы, предоставленные в этом репозитории, для создания таблиц. Все используемые учетные записи имеют один и тот же пароль. Пароль: "123456". Посмотрите видео на YouTube, чтобы получить полные подробности и пошаговые инструкции.
Вы также можете использовать что-то вроде примера ниже. Пример:
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'yourpassword',
database: 'cve_demo'
});
Затем импортируйте схему из database/schema.sql или запустите собственный скрипт настройки.
npm run dev
Откройте http://localhost:3000 в браузере, чтобы просмотреть приложение.
Это приложение содержит промежуточное ПО NextJS, которое действует как WAF (межсетевой экран веб-приложений), и уязвимую версию Next 13.4.9, что позволяет злоумышленникам эксплуатировать уязвимости, связанные с обходом аутентификации, включением локальных файлов или некорректным контролем доступа. Цель — помочь исследователям понять, как можно эксплуатировать эту CVE и как ее смягчить.
https://techtalkpine.com/2025/03/demo-for-cve-2025-29927-nextjs/
Этот проект лицензирован в соответствии с лицензией MIT.