Мастерство в области веб-уязвимостей

В этом курсе вы узнаете о наиболее распространенных веб-уязвимостях и о том, как их эксплуатировать. Вы изучите уязвимости SQL-инъекции, внедрения файлов, межсайтового скриптинга (XSS), загрузки файлов, инъекции команд и обхода каталогов. Вы также узнаете, как эксплуатировать эти уязвимости с использованием различных методов и инструментов.

КибербезопасностьВеб-разработка

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

«Мастерство в области веб-уязвимостей» — управляемый курс для начинающих о том, как небезопасная обработка ввода превращается в эксплуатируемый дефект веб-приложения. В восьми практических лабораториях вы запустите намеренно уязвимые PHP-приложения в Docker, изучите их поведение и фрагменты исходного кода и протестируете их из Firefox или терминала.

Программа рассматривает несколько разных путей атаки: SQL-инъекцию в запросы к базе данных, локальное и удалённое включение файлов, отражённый межсайтовый скриптинг, небезопасную загрузку файлов, внедрение команд операционной системы и внедрение PHP-кода. Каждое упражнение связывает уязвимый шаблон программирования с наблюдаемым результатом: обходом аутентификации, извлечением данных, выполнением сценария, доступом к файлу или получением веб-оболочки.

Чему вы научитесь

После завершения курса вы сможете:

  • Запускать намеренно уязвимые приложения с помощью Docker и взаимодействовать с ними через Firefox, параметры URL, формы и Hackbar
  • Обнаруживать SQL-инъекцию по ошибкам и проверкам истинных и ложных условий, различать числовой и строковый контексты и определять число столбцов запроса
  • Использовать UNION SELECT и information_schema для определения структуры базы MySQL, извлечения данных и обхода небезопасного запроса входа
  • Различать статическое и управляемое пользователем включение PHP-файлов и подтверждать локальное или удалённое включение контролируемыми полезными нагрузками
  • Создавать нагрузки отражённого XSS и обходить простые регистрозависимые фильтры с помощью альтернативных элементов и обработчиков событий
  • Исследовать проверку загружаемых файлов, загружать тестовую PHP-страницу или командную оболочку и изучать необязательный обход с помощью расширений
  • Эксплуатировать небезопасный ввод в командах операционной системы, выполнять дополнительные команды и устанавливать обратную оболочку только внутри лаборатории
  • Выходить из PHP-строки, передаваемой в eval(), чтобы вызывать функции, читать файлы сервера, записывать новые файлы и создавать простую веб-оболочку

Для кого этот курс

Курс предназначен для будущих тестировщиков веб-безопасности, разработчиков, участников CTF и начинающих специалистов по кибербезопасности, которые хотят под руководством связать уязвимый PHP-код с работающими нагрузками для подтверждения концепции. Он подходит тем, кто предпочитает начать с экспериментов в браузере и прямого изменения URL, прежде чем переходить к полному процессу с перехватывающим прокси.

Предварительные требования: Рекомендуются базовые навыки работы в терминале Linux и знакомство с URL, параметрами запросов, HTML-формами и простыми веб-запросами. Начальные знания PHP и SQL упростят понимание исходного кода, но лаборатории объясняют нужный синтаксис по мере появления.

Учебная среда: В лабораториях используются изолированные графические среды Linux от LabEx с Firefox, терминалом, Docker, локальными уязвимыми веб-приложениями и предоставленным файлом расширения Hackbar. В нескольких упражнениях загружаются общедоступные образы Docker, а демонстрация удалённого включения файлов обращается к публичной нагрузке PentesterLab; сторонняя учётная запись курсом не предусмотрена.

Часто задаваемые вопросы

Нужен ли Burp Suite или другой перехватывающий прокси?

Нет. В упражнениях используются Firefox, прямой ввод в URL и формы, инструменты разработчика браузера, Hackbar и команды терминала. Перехват и изменение необработанного HTTP-трафика с помощью Burp Suite в курс не входят.

Все ли уязвимые приложения размещаются локально?

Сами приложения работают локально в контейнерах Docker внутри лаборатории. Команды настройки загружают публичные образы из реестров контейнеров, а упражнение по удалённому включению файлов загружает публично размещённую демонстрационную нагрузку, поэтому этот урок не является полностью автономным.

Чем здесь отличается внедрение команд от внедрения кода?

В лаборатории по внедрению команд недоверенный ввод помещается в системную команду и демонстрируется выполнение дополнительных команд операционной системы. В лаборатории по внедрению кода ввод попадает в PHP-строку для eval(), позволяя внедрённым PHP-функциям читать и записывать файлы и создавать веб-оболочку.

Учит ли курс исправлять каждую уязвимость?

Он объясняет небезопасные шаблоны и знакомит с такими проверками, как валидация расширения, MIME-типа и размера файла, однако практика главным образом сосредоточена на эксплуатации. Безопасная параметризация запросов, систематическое кодирование вывода, производственная архитектура загрузки и полная проверка исправлений требуют дальнейшего изучения.

Преподаватель

labby
Labby
Labby is the LabEx teacher.