Документация/Для учащихся/Режим обучения

Режим обучения

Режим обучения предоставляет интерактивные пошаговые сценарии атак в симулированной среде браузера. Пройдите реальные цепочки атак, чтобы понять, как эксплуатируются уязвимости и как их предотвратить.

Как это работает

Режим обучения использует управляемый интерфейс с разделённым экраном, где Вы следуете за интерактивным сценарием атаки:

Левая панель — Гид по сценарию

Пошаговые инструкции, контекст сценария и нарратор, который проводит Вас через всю цепочку атаки. Каждый шаг говорит Вам точно, что делать.

Правая панель — Симулированная среда

Полностью интерактивный браузер, мобильное устройство или прокси-симуляция, где Вы выполняете действия — нажимаете кнопки, заполняете формы и наблюдаете за ответами в реальном времени.

Интерфейс Режима обучения

Вот как выглядит режим обучения с разделённым экраном во время сценария:

app.securecodinghub.com/learn/owasp-top-10/idor
Шаг 3 / 12ЭКСПЛУАТАЦИЯ
Обнаружьте профили других пользователей

Измените id в URL с /profile/1 на /profile/2. Обратите внимание, что приложение выдаёт данные второго пользователя без проверки владения.

Нарратор
Классический IDOR — обработчик маршрута доверяет params.id как источнику истины вместо проверки сессии.
vulnerable-app.com/profile/2
Профиль — Jane Doe
emailjane@example.comтелефон+1 555 0190рольadmin
⚠ утечка — получен доступ без авторизации

Структура сценария

Каждый сценарий следует согласованному пятиэтапному шаблону, отражающему реальные оценки безопасности:

1
Введение
Контекст о целевом приложении, Вашей роли и уязвимости, которую Вы будете исследовать.
2
Разведка
Исследуйте приложение и определите поверхность атаки — наблюдайте, как приложение ведёт себя в обычном режиме.
3
Эксплуатация
Выполните атаку шаг за шагом — внедряйте payload'ы, манипулируйте запросами или обходите элементы управления.
4
Последствия
Увидьте реальные последствия уязвимости — утечки данных, повышение привилегий или захват сессии.
5
Предотвращение
Изучите правильный код и изменения конфигурации для устранения уязвимости и предотвращения будущей эксплуатации.

Симулированные среды

Режим обучения использует три типа симуляции в зависимости от категории уязвимости:

СредаИспользуется дляОписание
SimBrowserWeb-уязвимостиПолностью интерактивная симуляция веб-браузера с адресной строкой, навигацией, формами и динамическими ответами. Используется для XSS, CSRF, SQL Injection и других веб-атак.
SimMobilePhoneМобильные уязвимостиСимуляция устройств iOS и Android с нативными элементами UI, статус-баром и сенсорными взаимодействиями. Используется для незащищённого хранилища, WebView injection и сценариев certificate pinning.
SimWebProxyAPI-уязвимостиHTTP request/response прокси, показывающий сырые API-вызовы, заголовки и полезные нагрузки. Используется для BOLA, mass assignment, broken authentication и других сценариев безопасности API.

Отслеживание прогресса

Каждый сценарий отслеживает Ваш прогресс, чтобы Вы могли продолжить с того места, где остановились:

МетрикаОписание
Текущий шаг / Всего шаговПоказывает Вашу позицию в сценарии — например, «Шаг 8 из 14»
Статус завершенияin_progress или completed
Поддержка возобновленияВы можете закрыть сценарий и вернуться позже — он возобновится с Вашего последнего шага

Прогресс сценария

Ваш список сценариев показывает текущий прогресс с одного взгляда:

app.securecodinghub.com/learn
Ваши сценарии
3 в процессе · 1 завершён
IDOR — Direct Object Reference
Шаг 8 / 14 · OWASP Web
В ПРОЦЕССЕ
SQL Injection — Login Bypass
Шаг 11 / 11 · OWASP Web
ЗАВЕРШЕНО
XSS — Stored Cross-Site Scripting
Шаг 3 / 16 · OWASP Web
В ПРОЦЕССЕ
Следующие шаги: Попробуйте Режим практики, чтобы проверить свои знания заданиями по ревью кода, или изучите полный каталог сценариев с панели управления.

Когда управляемый сценарий учит тому, чего не может задание по ревью кода

Задание по ревью кода в Режим практики даёт Вам самодостаточный фрагмент. Это справедливое представление того, как уязвимости выглядят построчно, но большинство реальных уязвимостей не находятся в одной строке. Они живут между файлами, между сервисами или на границе между клиентом и сервером. IDOR — это канонический пример: плохой код — это не запрос к базе данных, это отсутствующая проверка авторизации на три слоя выше в стеке. Режим обучения — это формат, который может показать Вам этот зазор, потому что он ставит всё приложение перед Вами.

То же верно для любой уязвимости, где эксплуатация зависит от состояния сессии, многошаговых потоков запросов или контролируемого атакующим тайминга. Stored XSS имеет значение только когда payload путешествует от одного пользователя к другому. Mass assignment имеет значение только когда слой моделей доверяет ключам тела запроса, которые он никогда не должен был выставлять. Фрагмент не может показать эту цепочку. Сценарий может, потому что Вы входите в систему, выполняете действия, наблюдаете за ответами и видите, как уязвимость превращается в нарушение в реальном времени. Пятиэтапная структура сценария выше спроектирована именно вокруг этой дуги.

Как использовать Режим обучения, если Вы уже senior

Senior-разработчики и инженеры безопасности иногда пропускают Режим обучения, потому что нарратор и пошаговые инструкции кажутся медленными. Это справедливо для классов уязвимостей, которые Вы лично эксплуатировали десятки раз. Правильное использование Обучения для senior-учащихся — целевое, а не «всё подряд». Бегло просмотрите Введение, бегло просмотрите Разведку и замедляйтесь на Эксплуатации только когда поверхность атаки незнакома. Бэкенд-инженер, никогда не писавший iOS-код, узнает больше из одного мобильного сценария про незащищённое хранилище, чем из двадцати заданий Практики в той же категории, потому что незнакомая часть — это платформа, а не концепция.

Другой senior-кейс — закрытие языковых пробелов. Если Вы присоединились к команде, использующей стек, который Вы плохо знаете, сценарии Обучения в этом стеке работают как быстрая экскурсия по форме приложения и поверхности атаки, которую Вы будете рецензировать. Сочетайте это с Практикой в выровненном стеке из Настройки стека, чтобы быстрее войти в новую кодовую базу, чем чтением одной только документации.

Пользовательские курсы объединяют Обучение и Практику

Администраторы организации могут собирать именованные последовательности, смешивающие сценарии Обучения и темы Практики в один кураторский путь — см. Пользовательские курсы для процесса сборки. Когда Вам назначен пользовательский курс, Вы потребляете его по адресу /learn/custom/<courseId>, как будто это встроенный курс, и элементы появляются в порядке, который определил администратор. Элементы Практики всё ещё начисляют и награждают XP так же, как они это делают в Режиме практики; элементы Обучения всё ещё пишут прогресс по сценариям так же, как они это делают здесь.