Веб-приложение для изучения типичных уязвимостей веб-безопасности. Только для образовательных целей!
Vulnerable Web App – это образовательная платформа для изучения веб-уязвимостей, разработанная для специалистов по информационной безопасности, студентов и всех, кто интересуется веб-безопасностью. Проект представляет собой набор интерактивных лабораторий, которые позволяют пользователям практиковать обнаружение и эксплуатацию различных уязвимостей в безопасной среде.
🚨 Предупреждение
Это приложение содержит намеренные уязвимости и должно использоваться только в учебных целях в изолированной среде. Не размещайте его на публичных серверах!
📋 Содержание
Приложение демонстрирует следующие уязвимости:
- Уязвимости аутентификации (SQL-инъекции, слабые пароли)
- Файловые уязвимости (Path Traversal, небезопасная загрузка)
- API уязвимости (недостаточная аутентификация, Mass Assignment)
- Cross-Site Scripting (XSS)
- Reflected XSS
- Stored XSS
- DOM-based XSS
- Cross-Site Request Forgery (CSRF)
- Server-Side Request Forgery (SSRF)
- Нарушение контроля доступа (IDOR) ⭐ новое
- JWT (JSON Web Token) уязвимости ⭐ новое
- XXE (XML External Entity) инъекции ⭐ новое
- NoSQL инъекции ⭐ новое
🔄 Что нового в версии 3.0
В третье обновление добавлены 4 новых типа уязвимостей:
- IDOR (Insecure Direct Object References): изучите, как злоумышленники могут получать доступ к чужим данным путём прямого указания идентификаторов объектов
- JWT уязвимости: исследуйте проблемы безопасности с JSON Web Token, включая подделку токенов и использование “none” алгоритма
- XXE инъекции: узнайте, как злоумышленники могут использовать XML-парсеры для чтения системных файлов и выполнения других атак
- NoSQL инъекции: изучите уязвимости, специфичные для нереляционных баз данных, в частности MongoDB
Основные обновления:
- Добавлена новая лаборатория по NoSQL-инъекциям
- Четыре уровня сложности заданий для изучения уязвимостей MongoDB
- Практические задания по обходу аутентификации, манипуляции операторами и инъекциям в агрегационный конвейер
- Подробные решения с примерами кода в едином стиле
- Улучшенный интерфейс всех лабораторий
- Переработан дизайн раздела решений в хакерском стиле
- Улучшена навигация между заданиями
- Добавлены визуальные индикаторы прогресса
- Оптимизация и исправления
- Исправлены ошибки в работе интерактивных элементов
- Оптимизирована загрузка ресурсов
📚 Доступные лаборатории
В текущей версии приложения доступны следующие лаборатории:
- XSS (Cross-Site Scripting) – изучение различных типов XSS-уязвимостей, включая Reflected, Stored и DOM-based XSS
- SQL Инъекции – практика эксплуатации уязвимостей SQL-инъекций, обход аутентификации и извлечение данных
- IDOR (Insecure Direct Object References) – изучение уязвимостей контроля доступа
- JWT (JSON Web Tokens) – исследование уязвимостей в механизмах аутентификации на основе токенов
- XXE (XML External Entity) – практика эксплуатации XXE-уязвимостей
- NoSQL Инъекции – НОВОЕ! Изучение уязвимостей в MongoDB и других NoSQL базах данных
🔧 Установка и запуск
Требования
Шаги установки
- Скачайте и распакуйте архив с приложением
- Запустите приложение:
- Windows: дважды кликните на
setup.bat
- Linux/MacOS:
bash chmod +x setup.sh ./setup.sh
- Откройте в браузере: http://localhost:3001
Решение проблем
Если возникли проблемы при запуске:
- Ошибка “Node.js не установлен”
- Установите Node.js с официального сайта
- Перезапустите компьютер
- Запустите setup.bat снова
- Ошибка “Порт 3001 занят”
- Закройте другие приложения, использующие порт 3001
- Или измените порт в файле server.js
- Ошибка при установке зависимостей
- Проверьте подключение к интернету
- Попробуйте запустить от имени администратора
- Отключите антивирус временно
📚 Как использовать
- Изучите каждый тип уязвимости через соответствующий раздел в меню
- Следуйте инструкциям на страницах уязвимостей
- Экспериментируйте с предложенными примерами
- Изучайте исходный код для понимания механизмов уязвимостей
🛠 Структура проекта
vulnerable-web-app/
├── css/
│ └── style.css
├── js/
│ └── main.js
├── vulnerabilities/
│ ├── auth.html
│ ├── files.html
│ ├── api.html
│ ├── xss.html
│ ├── csrf.html
│ ├── ssrf.html
│ ├── broken-access.html (новое)
│ ├── jwt.html (новое)
│ ├── xxe.html (новое)
│ └── nosql.html (новое)
├── labs/ # Интерактивные лаборатории
│ ├── index.html # Список лабораторий
│ ├── xss-lab.html # XSS лаборатория
│ ├── sql-lab.html # SQL-инъекции лаборатория
│ ├── idor-lab.html # IDOR лаборатория
│ ├── jwt-lab.html # JWT лаборатория
│ ├── xxe-lab.html # XXE лаборатория
│ └── nosql-lab.html # NoSQL лаборатория (новое!)
├── index.html
├── server.js
├── setup.bat
├── setup.sh
└── README.md
🔒 Рекомендации по безопасности
- Используйте приложение только локально
- Не размещайте на публичных серверах
- Используйте для обучения, не для реальных проектов
- Изучайте также способы защиты от этих уязвимостей
📝 Примечания
- Все уязвимости созданы намеренно в учебных целях
- Код содержит комментарии, объясняющие механизмы уязвимостей
- Рекомендуется изучать с преподавателем или ментором
🎓 Автор
Михаил Тарасов (Timcore)