HTTP Status Fundamentals
REST-контроллер возвращает 200 OK при ошибках. Учимся подбирать правильные HTTP статусы и строить error handler.
Перейти в лабораториюCYBERSEC TRAINING
Здесь собраны практики по уязвимостям и CI/CD. Каждая лабораторная — готовый сценарий с контейнером, подсказками и заданиями на устранение багов.
Запускай контейнер в своём окружении или разворачивай в облаке. Каждая карточка ведёт на страницу с инструкциями и уязвимым приложением.
REST-контроллер возвращает 200 OK при ошибках. Учимся подбирать правильные HTTP статусы и строить error handler.
Перейти в лабораториюСкрипт на curl игнорирует статусы 5xx. Разбираем ключевые флаги и как строить health-checkи в терминале.
Перейти в лабораториюРегистрация валидирует имя сложным @Pattern без лимитов. Учимся предотвращать regex DoS и включать ограничения.
Перейти в лабораториюПоиск клиентов падает из‑за тяжёлого @Pattern и отсутствия @Validated. Исправляем валидацию и лимиты.
Перейти в лабораториюМассовая рассылка проверяет список email тяжёлым регекспом. Учимся ставить лимиты и безопасные валидаторы.
Перейти в лабораториюПодпись вебхука валидируется опасным @Pattern. Переписываем проверку на HexFormat и вводим лимиты.
Перейти в лабораториюSecurityConfig игнорирует /actuator/**. Учимся закрывать health/info, маскировать детали и включать авторизацию.
Перейти в лабораторию/actuator/env раскрывает секреты. Учимся ограничивать exposure, маскировать значения и требовать авторизацию.
Перейти в лабораториюH2 консоль включена в бою. Учимся выключать dev-инструменты, вводить профили и защиту.
Перейти в лабораториюКонфиг возвращает stacktrace пользователям. Учимся скрывать детали, строить error handler и проверять тестами.
Перейти в лабораториюNode.js сервис без проверки прав доступа. Учимся воровать чужие досье и фиксить контроль объектов.
Перейти в лабораториюФайловый просмотрщик, который не ограничивает путь. Учимся красть файлы и нормализовать пути в Node.js.
Перейти в лабораториюCode review-сниппет на Go: ищем path traversal в обработчике загрузки и предлагаем фикс.
Перейти в лабораториюРевью Java Servlet, который печатает пользовательский ввод без экранирования. Учимся находить отражённую XSS в исходниках.
Перейти в лабораториюРазбираем контроллер превью в Spring MVC и фреймворк шаблонов. th:utext + пользовательский HTML = XSS.
Перейти в лабораториюCode review Java сервиса конфигураций: находим API-ключ, который зашили в код, и думаем как вынести его в Secret Manager.
Перейти в лабораториюКонтроллер аккаунтов отдаёт профиль по ID без проверки владельца. Учимся находить IDOR и строить авторизацию по пользователю.
Перейти в лабораториюЭкспорт заказов строит CSV по чужому ID и отдаёт его без проверки. Разбираем IDOR в B2B API и фиксируем контроль доступа.
Перейти в лабораториюЭндпоинт /api/v1/users/{id} потерял @PreAuthorize. Учимся возвращать методовые проверки и сравнение subject == resourceOwner.
Перейти в лабораториюСервис профиля отдаёт данные только по id. Встраиваем централизованный guard и негативные spring-security-test.
Перейти в лабораториюСервис логина хеширует пароли SHA-256 со статичной солью. Обсуждаем переход на BCrypt/Argon2 и pepper из KMS.
Перейти в лабораториюAES-ключ и API-токен лежат в конфиге. Учимся выносить секреты в Secret Manager, шифровать AES-GCM и проверять конфиги.
Перейти в лабораториюПроверяем TokenService: разработчик хардкожит JWT секрет, нам нужно описать риски и предложить защищённое хранение.
Перейти в лабораториюРевью утилиты шифрования: мастер-ключ зашит в массив байт. Учимся переносить ключи в KMS и ротацию.
Перейти в лабораториюФорма поиска отражает ввод без экранирования. Классическая reflected XSS через GET-параметр с curl.
Перейти в лабораториюAPI комментариев без санитизации. Stored XSS сохраняется в базе и выполняется у всех пользователей.
Перейти в лабораториюJavaScript читает параметр из URL и вставляет в DOM через innerHTML. Учимся анализировать клиентский код.
Перейти в лабораториюAPI с базовым XSS-фильтром. Учимся обходить через encoding, nested tags и альтернативные векторы атак.
Перейти в лабораториюЛаборатории раздела I из CyberSec Academy Roadmap: валидаторы ввода, контекстное экранирование, безопасное логирование и обработка ошибок.
Полный блок раздела II: XSS/CSRF/SQLi, Path Traversal, Command/NoSQL/XXE, SSRF и безопасные загрузки.
Раздел III: куки, фиксация и угон сессий, reset-flow, MFA bypass, централизованный контроль доступа.
Раздел IV: JWT (база и злоупотребления), OAuth/OIDC, GraphQL, WebSockets и безопасная работа с токенами.
Раздел V: гонки, логические баги, сценарии ATO, abuse & throttling, цепочки SSRF → RCE.
Раздел VI: takeover, DNS rebinding, CSP, clickjacking, CORS edge cases, third-party, PWA/SW и HTTP/3.