Курс
Анализ защищенности веб-приложений (Web Application Security Analysis)

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

Записаться на обучение

Код курса

R-319

Аудитория курса:

Аудиторы

ИБ инженеры

IT специалисты

Сетевые инженеры

Системные администраторы

Разработчики веб-приложений

Что узнают слушатели:

Основные уязвимости веб-приложений, включая, но не ограничиваясь OWASP Top 10

Обзор устройства веб-приложений, сбор информации, дирбастинг и краулинг. Обзор тестирования веб-приложений, знакомство с Burp Suite

Уязвимости авторизации и менеджмента сессий, рекомендации по обеспечению безопасности аутентификации. Обеспечение правильного хранения паролей

Изучение атаки Path traversal, File Upload, Local & Remote File Inclusion, Local File Read и как от них защищаться. Изучение URL схем, безопасность архивов (Archive Upload Issues)

Уязвимость обход контроля доступа (Broken Access Control), разграничение доступа в веб-приложениях, на функциональном уровне и на уровне объектов, оптимизация защиты от уязвимости. Изучение работы шаблонов, изучение уязвимостей, автоматизация эксплуатации уязвимостей шаблонов

Изучение сериализации, небезопасной десериализации для разных языков программирования, методы защиты от уязвимости

Изучение уязвимостей Server Side Request Forgery, защита веб-приложения от обращений к внутренним ресурсам. Изучение уязвимости XML eXternal Entity, защита от XXE. Изучение атаки PDF Rendering

Чтение ответов с определенного origin (CORS). В контексте origin приложения выполнять Javascript-код (XSS). Кража cookies, модификация dom-дерева, изменение компонентов веб-страницы

Чему научатся слушатели:

Обнаруживать и эксплуатировать основные уязвимости серверной части веб-приложений

Обнаруживать и эксплуатировать основные уязвимости клиентской части

Оценивать корректность реализации механизмов аутентификации и управления сессиями

Использовать Burp Suite и другие инструменты для выявления и эксплуатации уязвимостей веб-приложений

Программа обучения

16 занятий

64 ак. часa

Знакомство с базовыми технологиями веба.

Основные веб-технологии: HTTP, URL, HTML, Javascript, CSS и т.д., основные теги HTML. Программное обеспечение Burp Suite


Содержание:

  • Обзор тестирования веб-приложений
    • Подходы к анализу
  • Что есть полезного для изучающих пентест веба
    • Программное обеспечение
  • HTTP
    • HTTP request
    • HTTP response
    • Методы HTTP (HTTP verbs)
    • Коды состояния ответов HTTP
    • URL — Uniform Resource Locator
    • HTTP — текстовый протокол
  • Кодировки в WWW
  • HTTPS vs HTTP
    • Content-Type
  • HTML, Javascript, CSS

Упражнение:

  • Изучение форматов кодирования в WWW
Устройство современных веб-приложений и сбор информации.

Изучение устройства веб-приложений, методов сбора информации. Брутфорс директорий и файлов на веб-сервере


Содержание:

  • Обзор устройства веб-приложений
    • Веб-приложение
    • MVC
    • Фреймворки
    • Routing
    • SPA (приложения-одностраничники)
    • Веб-сервер
  • Сбор информации
    • Что вообще можно собирать
    • Сбор информации об используемых технологиях
    • Сбор входных точек
    • Пассивный сбор
  • Дирбастинг и краулинг
    • Словари
    • Burp Intruder
    • Виртуальные хосты
    • Работа с .git/.svn

Упражнение:

  • Дирбастинг с помощью Burp Intruder
Уязвимости OS Command injection.

Изучение уязвимостей к инъекциям, защита от внедрения на сервер инъекциями


Содержание:

  • Уязвимость OS Command injection
    • Техники
    • Обход фильтрации
    • Code Injection
  • Reverse shell
  • Back connect receiver
  • Рекомендации к защите

Упражнение:

  • PHP инъекции
  • Обход фильтрации
  • Валидация входных данных
  • Экранирование специальных символов
Уязвимость SQL Injection I.

Чтение информации из доступных баз данных. Получение информации о сервере, текущем пользователе, настройках, информации из файловой системы. Возможность модификации информации в базе данных, записи в файлы, выполнения произвольного кода. Изучение техник SQL инъекций


Содержание:

  • Краткий обзор SQL
  • Описание уязвимости SQL injection
    • Пример
    • Упражнение
    • Cheatsheets
  • Вектора эксплуатации: bypass, union-based
    • Техники SQL Injection
    • Bypass
    • Stacked queries
    • Union-based
    • Упражнения
  • Обзор имеющихся информационных ресурсов по уязвимости SQL injection

Упражнение:

  • Bypass инъекции
  • Stacked queries инъекции
  • Union-based инъекции
  • SQL injection
    • String
    • Numeric
Уязвимость SQL Injection II.

Поиск инъекций, изучение техник SQL инъекций, использование sqlmap для автоматизации. Исключение уязвимости SQL injection со стороны разработчиков


Содержание:

  • О поиске инъекций и сборе информации из базы
    • В каких запросах могут быть инъекции
    • Место инъекции
    • Нужна ли кавычка
    • Как проверить что есть инъекция
    • Комментарии в SQL
    • Что нас интересует в БД
    • Системная информация
    • Таблицы и колонки
    • Определение СУБД
  • Вектора эксплуатации уязвимости SQL injection: error-based, boolean-blind, time-based.
    • Error based
    • Boolean blind
    • Out of Band
    • Time based
    • Привелигированные атаки
      • Чтение файлов
      • Запись файлов
      • Выполнение команд
  • Использование sqlmap для автоматической эксплуатации уязвимостей SQL injection
    • Обнаружение
    • Эксплуатация
    • Кэширование
    • Упражнение root-me
      • sqli_blinder
      • INSERT SQL Injections
      • UPDATE SQL Injections
  • Рекомендации для разработчиков для исключения уязвимости SQL injection

Упражнение:

  • Error based инъекции
  • Boolean blind инъекции
  • Out of Band инъекции
  • Time based инъекции
  • Привелигированные атаки
Аутентификация и менеджмент сессий.

Знакомство с уязвимостями авторизации и менеджмента сессий, рекомендации по обеспечению безопасности аутентификации. Обеспечение правильного хранения паролей. Брутфорс(онлайн) веб-сервера, защита от брутфорса, работа с Burp Intruder и Patator


Содержание:

  • Authentication
  • Факторы аутентификации
  • О сессиях
  • Результат аутентификации
  • Сравнение
  • Сессионные идентификатооры
  • JWT
  • Время жизни сессий
  • Передача сессий на серверную сторону
  • О паролях
  • Сложность пароля
  • Хранение пароля
  • Восстановление пароля
  • Делегирование аутентификации
  • Brute Force
    • User Enumeration
      • Ищем людей
      • Угадываем почты
      • Если не почты
    • Password Bruteforce
    • SMS OTP Bruteforce
  • Защита от брутфорса
    • Временная блокировка
    • Обход CAPTCHA с помощью tesseract
  • Bruteforce — утилиты

Упражнение:

  • Демонстрация сессий PHP
  • Демонстрация jwt.io
  • Обход CAPTCHA с помощью tesseract
  • Работа с Burp Intruder и Patator
Уязвимость Path traversal. Уязвимость File Upload. Атака Local File Read.

Изучение атаки Path traversal, File Upload и как от них защищаться. Local & Remote File Inclusion, Local File Read. Изучение URL схем, безопасность архивов (Archive Upload Issues)Как защищаться от LRFI. Изучение уязвимости Local File Read


Содержание:

  • Path Traversal
    • bWAPP
    • Как защищаться?
  • File Upload
    • Web shell
    • Практика bWAPP
    • Обход ограничений на расширения
    • JSP — web shell
    • Как защищаться?
    • MIME types
  • Local & Remote File Inclusion
    • Local File Inclusion
    • Remote File Inclusion
    • bWAPP
    • PHP и нулевой байт
    • Как защищаться?
  • Local File Read
    • Стандартные файлы
    • Исходный код
  • URL Schema
    • В операциях с файлами
    • PHP Wrappers
  • Archive Upload Issues
    • Zip Slip
    • Создание архива
    • Symlinks

Упражнение:

  • bWAPP — Directory Traversal
  • Простейший веб-шелл на PHP
  • bWAPP — Other bugs/ Unrestricted File Upload
  • Пример tomcat
  • Демонстрация LFI
  • Демонстрация RFI (php.ini)
  • Демонстрация LFI через файл сессии
  • Демонстрация в bWAPP security_level=2
Уязвимость Broken Access Control.

Уязвимость обход контроля доступа (Broken Access Control), разграничение доступа в веб-приложениях, на функциональном уровне и на уровне объектов, оптимизация защиты от уязвимости. Изучение работы шаблонов, изучение уязвимостей, автоматизация эксплуатации уязвимостей шаблонов


Содержание:

  • Определения
  • Разграничение доступа в веб-приложениях
  • Разграничение доступа на функциональном уровне
  • Разграничение доступа на уровне объектов
  • Broken Access Control
    • IDOR
      • Примеры
    • MFLAC
      • Тестирование на BAC
      • Поиск входных точек
      • Реализация и рекомендации
  • Рекомендации
  • Server Side Template Injection
  • Шаблоны HTML-страниц
  • Инструменты
  • Примеры

Упражнение:

  • bWAPP — IDOR: Change Secret, Order Tickets
  • Missing Functional Level Access Control (MFLAC)
  • Тестирование на BAC
  • Практика поиска входных точек
  • Практика на Portswigger
Небезопасное сравнение и приведение типов в PHP. Состояние гонки.

Атака использующая небезопасное сравнение, уязвимость приведения типов в PHP. Защита от логических багов и защита потоков синхронизацией


Содержание:

  • Logical bugs
  • PHP Loose Comparison & Type Juggling
    • Scientific notation
    • Функции возвращающие Null
    • Как защищаться?
  • Race condition
    • Состояние гонки
    • Пример с переводом денег
    • Способ защиты
    • Синхронизация на уровне БД
    • Пример реальной накрутки бонусов в Starbucks

Упражнение:

  • Примеры логических ошибок разработчиков
  • Синхронизация на уровне БД
  • Работа в Burp Intruder
Небезопасная десериализация.

Изучение сериализации, небезопасной десериализации для разных языков программирования, методы защиты от уязвимости


Содержание:

  • Сериализация
  • PHP serialization
  • Insecure Deserialization
    • Пример
    • Пример с созданием файла
  • PHP deserialization
    • Magic methods
    • Exploitation
    • Known gadgets
    • Как защищаться?
  • Java serialization
  • Java deserialization
    • Cheat Sheet
    • Known gadgets
    • Runtime.exec
    • Как защищаться?
  • .Net serialization
    • Known gadgets
  • Python
    • Pickle
    • Yaml
  • Ruby — Yaml.load

Упражнение:

  • PHP, Java deserialization
  • PHP, Java, .Net, Python, Ruby serialization
Уязвимость Server Side Request Forgery.

Изучение уязвимостей Server Side Request Forgery, защита веб-приложения от обращений к внутренним ресурсам.


Содержание:

  • Server Side Request Forgery
    • Адреса
    • Цели
    • CRLF injection
    • Пример temp mail и SMTP
    • Схемы
    • Защита
    • DNS rebinding
    • Упражнение
    • Материалы
    • Blind
    • Windows

Упражнение:

  • Пример Blind SSRF: Сканирование портов
  • Пример с запросом на internal_web
  • Пример temp mail и SMTP
  • Пример обхода ssrf_check.php — читаем internal_web
  • Попасть в админскую секцию /admin.php через ssrf_check.php
Уязвимость XML External Entity.

Изучение уязвимости XML eXternal Entity, защита от XXE. Изучение атаки PDF Rendering


Содержание:

  • XML eXternal Entity (XXE)
    • Entity
    • Встроенные Entity
    • Внутренние Entitry
    • Внешние Entity
  • XXE Вектора атаки
    • DoS
    • Чтение локальных файлов
    • Типы
    • Out-of-band
    • Защита
  • PDF Rendering
    • Вектора атаки

Упражнение:

  • Встроенные, внутренние и внешние Entity
  • PDF Rendering
Same Origin Policy. Cross-Site Request Forgery.

Изучение атак на сервер и клиента, Same Origin Policy и зачем он нужен. Изучение атаки Cross-Site Request Forgery, защита от атаки CSRF


Содержание:

  • Атаки на сервер
  • Атаки на клиента
  • Same Origin Policy
  • Зачем нужен SOP?
    • А что можно?
    • Демонстрация отправки запросов
  • Cross-Site Request Forgery
    • Форма
    • XHR
    • Защита
    • Токены
    • SameSite Cookie
    • "Сложные" запросы

Упражнение:

  • Сравнение ссылок по origin
  • Демонстрация отправки запросов evil.com/example.com
  • Отправка запроса на другой Origin
    • через заполнение и сабмит формы
    • через XmlHTTPRequest/fetch (AJAX-запрос)
  • Сложные запросы браузеру
Cross-origin resource sharing. Cross-Site Scripting.

Чтение ответов с определенного origin (CORS). В контексте origin приложения выполнять Javascript-код (XSS). Кража cookies, модификация dom-дерева, изменение компонентов веб-страницы


Содержание:

  • Cross-origin resource sharing
    • "Сложность" запросов
  • Cross-Site Scripting (XSS)
    • HTML-injection
      • Внутри тэга
      • Атрибут тэга
      • Тэг <script>
  • "Классическая" классификация XSS
    • Отраженные XSS
    • Хранимые XSS
    • DOM-based XSS
    • Другие важные аспекты оценки XSS
    • Self XSS
  • Эксплуатация XSS
    • Кража Cookies
    • Модификация DOM
    • Обход защиты от CSRF
    • Upload XSS
      • SVG XSS
      • XML XSS
  • Исследование о работе разных веб-серверов с разными типами загруженных файлов
  • Защита от Upload XSS

Упражнение:

  • Пример XSS bWAPP
  • Эксплуатация XSS: Cookies, DOM
  • Защита от Upload XSS
Content Security Policy. Security Headers.

Проверка Content Security Policy, Client-Side Template Injection, укрепления безопасности заголовками, описание уязвимостей


Содержание:

  • Content Security Policy
    • Автоматизированная проверка корректности настройки CSP
  • CSTI — Обход unsafe-inline
    • Варианты для разных версий angular
  • Заголовки безопасности
    • X-Frame-Options
    • X-XSS-Protection
    • X-Content-Type-Options
    • Strict-Transport-Security
  • Описание уязвимостей
    • CVSS
  • SQL Injection

Упражнение:

  • Формирование отчета используя стандарт CVSS
Финальное занятие.

Подготовка к собеседованиям, общий подход тестирования веб-приложений. О прокачке навыка находить неожиданные и нестандартные пути. Подборка материалов для самостоятельного углубленного изучения безопасноти веб


Содержание:

  • Собеседование пентестера
    • Внешний
    • Веб
    • Внутренний
    • Мобилки(?)
    • Общие технические вопросы
  • Структура
  • Общий подход тестирования веб-приложений
  • Про уязвимости
  • Про уязвимости веба
  • Общие технические вопросы
  • "Хакерское мышление"
  • Что можно еще изучить по безопасности веба

Упражнение:

  • Подготовка к собеседованиям
Записаться на обучение

Как проходит обучение

  • Иммерсивный подход
  • Фокус на практике. Более 70% времени обучения вы уделите развитию практических навыков.

  • Никаких записей с прошлых потоков
  • Обновляем контент перед каждым запуском курса, снимая актуальные запросы с рынка и ориентируемся на них, создавая программы обучения.

  • Эксперты — реальные практики
  • Наши преподаватели проходят тестирование на соответствие требованиям CyberEd. Мы приглашаем лучших экспертов — практиков, которые каждый день сталкиваются с реальными задачами и решают их.

  • Требования к слушателям курса:
    • Уметь читать специализированную документацию и техническую литературу на английском языке
    • Иметь опыт написания кода на любом языке программирования (PHP, Python, Java, JavaScript, Ruby, etc…)
    • Иметь представление о взаимодействии компьютеров в сети (Понимать работу протоколов IP, TCP, DNS, HTTP)
    • Иметь опыт разработки веб-приложений (Как минимум динамических страниц)
    • Уметь работать с ОС Linux или ОС Windows на уровне продвинутого пользователя (Установка пакетов, работа с терминальной оболочкой, менеджмент прав доступа)
    • Уметь работать с системами виртуализации (VirtualBox, VMWare)
    01   / 05

    Записаться на обучение

    !
    !

    FAQ — ответы на частозадаваемые вопросы

    Требования к программному обеспечению?

    Рекомендуемые технические требования

    для комфортного прохождения модуля и сохранения всех полученных материалов:

    • Не менее 8 ГБ DDR3 оперативной памяти
    • Процессор не менее четырех ядер с частотой не менее 2.3 Ггц
    • Жесткий диск SSD со свободным местом не менее 256 ГБ
    • Поддержка аппаратной виртуализации (Intel VT-x, AMD-V)
    • Дополнительный — второй монитор (Диагональ от 17 дюймов, разрешением от 1280×720p c частотой обновления от 60 Гц)
    • Современная операционная система (Минимально: Windows 10 x64, Linux, MacOS 10.13.6)

    Все ответы

    Получить консультацию
    !
    !

    Спасибо,
    менеджер свяжеться с вами в ближайшее время

    Спасибо,
    за регистрацию на вебинар

    Заказать обратный звонок

    !
    Заполните это поле
    !
    Заполните это поле