📘 О чем эта работа
Отчёт посвящён практическому тестированию безопасности локальной установки веб‑магазина Juice Shop. Объект — приложение Juice Shop; предмет — обнаружение и эксплуатация уязвимостей в интерфейсе, API и файловом доступе; в работе подробно описаны сценарии атак и результаты их выполнения.
📚 Что внутри
В работе последовательно показаны реальные шаги от развёртывания до эксплуатации уязвимостей:
- Инструкции по запуску приложения: клонирование репозитория, установка зависимостей и запуск сервера Node.js на порту 3000.
- Эксплуатация SQL‑инъекции в форме входа: использован payload ' OR 1=1; --, тесты через POST /rest/user/login и пример Python‑скрипта для массового перебора инъекций (requests).
- Stored XSS через поле email: создание пользователя через /api/Users с XSS‑вектором (iframe + fetch) и демонстрация перехвата cookies и JWT при просмотре админ‑страницы.
- Манипуляция ценой: отправка POST на /api/BasketItems с 'quantity': -1000, сценарий оформления заказа и воздействие на итоговую сумму.
- Получение административного доступа: создание пользователя с полем role='admin' через API и проверка доступа к /#/administration.
- Обход проверки расширений и получение бэкапа: скачивание файла coupons_2013.md.bak с использованием нулевого байта (%2500), декодирование JWT, извлечение MD5‑хэша и восстановление пароля администратора.
📊 Для кого подходит
Материал пригодится студентам и практикующим специалистам по информационной безопасности, тестировщикам веб‑приложений и разработчикам бекенда для отработки навыков обнаружения уязвимостей и внедрения защитных мер.
✨ Особенности
В отчёте приведены конкретные payloadы и конечные эндпойнты (/rest/user/login, /api/Users, /api/BasketItems, /ftp/...), примеры Python‑скриптов для автоматизации атак, пример простого HTTP‑сервера для приёма украденных данных и перечень практических рекомендаций: параметризация запросов, ORM, CSP, HTTP‑Only cookies, серверная валидация числовых параметров, игнорирование клиентского поля 'role', защита от нулевых байтов при обработке имён файлов и использование современных хэш‑функций (bcrypt/Argon2) вместо MD5.
❓ Частые вопросы
Подойдёт ли для моего вуза?
Структура отчёта с отчётными блоками и практическими примерами соответствует типовым требованиям лабораторных/практических работ по безопасности.
Можно адаптировать?
Да — скрипты и payloadы легко модифицируются под другие тестовые окружения и требования преподавателя; рекомендации по защите можно вставить в раздел «рекомендации» отчёта.
Рекомендации по защите (кратко)
- Использовать параметризованные запросы и ORM, не собирать SQL из строк.
- Экранировать и валидировать все пользовательские поля при выводе (особенно email и имена), внедрить CSP и HTTP‑Only/ Secure для куки.
- Серверная валидация числовых параметров (quantity > 0), ограничения на максимальные значения и мониторинг аномалий транзакций.
- Игнорировать или проверять на сервере клиентские поля управления ролями; хранить в токенах только необходимую минимальную информацию.
- Не хранить хэши паролей в JWT; использовать соль и современные алгоритмы хеширования вместо MD5; защищать доступ к резервным копиям и корректно обрабатывать нулевые байты в именах файлов.
Итог
Отчёт сочетает практические примеры эксплуатации уязвимостей и конкретные контрмеры, что делает его полезным материалом для практических занятий и самостоятельной подготовки по тестированию безопасности веб‑приложений.