Содержание курса
Модуль 1. Концепции веб-сайтов
- Принципы работы веб-серверов и веб-приложений
-
Принципы безопасности веб-сайтов и веб-приложений
-
Что такое OWASP
-
Обзор классификации OWASP Top 10
-
Знакомство с инструментами для выполнения атак
-
Настройка лаборатории
Лабораторная работа: Установка, настройка и запуск учебного сайта
Модуль 2. Инъекции. Что такое инъекции и почему они становятся возможными
2.1. Не SQL инъекции
- HTML инъекции
-
Что такое iFrame
-
iFrame инъекции
-
Что такое LDAP
-
LDAP инъекции
-
Что такое почтовые заголовки
-
Инъекции в почтовых заголовках
-
Инъекции команд операционной системы
-
Инъекции PHP кода
-
Что такое включения на стороне сервера (SSI)
-
SSI инъекции
- Концепции языка структурированных запросов (SQL)
2.2. Простые SQL инъекции
- SQL инъекции
-
Что такое AJAX/JSON/jQuery
-
SQL инъекции в AJAX/JSON/jQuery
-
Что такое CAPTCHA
-
SQL инъекции в обход CAPTCHA
-
SQLite инъекции
-
Пример SQL инъекции в Drupal
-
Что такое хранимые SQL инъекции
-
Хранимые SQL инъекции
-
Хранимые SQLite инъекции
-
Концепции XML
-
Хранимые SQL инъекции в XML
-
Использование User-Agent
-
SQL инъекции в поле User-Agent
2.3.Слепые SQL инъекции
- Слепые SQL инъекции на логической основе
-
Слепые SQL инъекции на временной основе
-
Слепые SQLite инъекции
-
Что такое протокол доступа к объектам (SOAP)
-
Слепые SQL Injection в SOAP
-
XML/XPath инъекции
Лабораторная работа: Выполнение атак на учебный веб-сайт с применением инъекций и защита сайта от таких атак
Модуль 3. Взлом аутентификации и сеанса
3.1. Атаки на аутентификацию
- Обход CAPTCHA
-
Атака на функционал восстановления паролей
-
Атака на формы входа
-
Атака на управление выходом
-
Атаки на пароли
-
Использование слабых паролей
-
Использование универсального пароля
3.2. Атаки на управление сеансом
- Атаки на административные порталы
-
Атаки на Cookies
-
Атаки на передачу идентификатора сеанса в URL
-
Фиксация сеанса
-
Защита от атак на аутентификацию и управление сеансом
Лабораторная работа: Выполнение атак на учебный веб-сайт с применением атак на аутентификацию и управление сеансом
Модуль 4. Утечка важных данных
4.1. Принципы атак, приводящих к утечке данных
- Использование кодировки Base64
-
Открытая передача верительных данных по HTTP
-
Атаки на SSL BEAST/CRIME/BREACH
-
Атака на уязвимость Heartbleed
-
Уязвимость POODLE
-
Хранение данных в веб-хранилище HTML5
-
Использование устаревших версий SSL
-
Хранение данных в текстовых файлах
Лабораторная работа: Выполнение атак на учебный веб-сайт с применением техник раскрытия чувствительных данных и защита сайта от таких атак
Модуль 5. Внешние XML объекты
Что такое внешние объекты XML (XXE)
5.1. Принципы атак на внешние объекты XML
- Атака на внешние XML объекты
-
Атака XXE при сбросе пароля
-
Атака на уязвимость в форме входа
-
Атака на уязвимость в форме поиска
-
Атака на отказ в обслуживании
Лабораторная работа: Выполнение XXE атак на учебном веб-сервере и защита
Модуль 6. Нарушение контроля доступа
6.1. Концепции DOR
- Пример атаки на небезопасную прямую ссылку при смене пароля пользователя
-
Пример атаки на небезопасную прямую ссылку при сбросе пароля пользователя
-
Пример атаки на небезопасную прямую ссылку при заказе билетов в интернет-магазине
6.2. Принципы атак на функциональный уровень
6.3. Что такое обход каталога
- Обход каталога в каталогах
-
Обход каталога в файлах
6.4. Предназначение заголовка хоста в HTTP
- Атака на заголовок Host, приводящая к отравлению кэша
-
Атака на заголовок Host, приводящая к сбросу пароля
6.5. Концепции подключения локального или удаленного файла
- Включение локального файла в SQLiteManager
-
Включение локального или удаленного файла (RFI/LFI)
6.6. Другие возможности ограничения доступа
- Атака на ограничение доступа устройств
-
Атака на ограничение доступа к каталогам
6.7. Что такое подделка запросов на стороне сервера (SSRF)
6.8. Что такое внешние объекты XML (XXE)
Лабораторная работа: Выполнение атак на функционал учебного веб-сервера и защита
Модуль 7. Небезопасная конфигурация
- Принципы атак на конфигурацию
- Произвольный доступ к файлам в Samba
-
Файл междоменной политики Flash
-
Общие ресурсы в AJAX
-
Межсайтовая трассировка (XST)
-
Отказ в обслуживании (Large Chunk Size)
-
Отказ в обслуживании (Slow HTTP DoS)
-
Отказ в обслуживании (SSL-Exhaustion)
-
Отказ в обслуживании (XML Bomb)
-
Небезопасная конфигурация DistCC
-
Небезопасная конфигурация FTP
-
Небезопасная конфигурация NTP
-
Небезопасная конфигурация SNMP
-
Небезопасная конфигурация VNC
-
Небезопасная конфигурация WebDAV
-
Локальное повышение привилегий
-
Атака «Человек посередине» в HTTP
-
Атака «Человек посередине» в SMTP
-
Небезопасное хранение архивных файлов
-
Файл robots
Лабораторная работа: Выполнение атак на конфигурацию учебного веб-сервера и защита от таких атак
Модуль 8. Межсайтовый скриптинг (XSS)
8.1. Концепции XSS
8.2. Отраженные XSS
- Отраженная XSS в GET запросах
-
Отраженная XSS в POST запросах
8.3 Что такое JSON
8.4. Что такое AJAX
- Отраженная XSS в AJAX
-
Отраженная XSS в XML
-
Отраженная XSS в кнопке возврата
8.5. Что такое функция Eval
-
Отраженная XSS в функции Eval
8.6. Что такое атрибут HREF
- Отраженная XSS в атрибуте HREF
-
Отраженная XSS в форме входа
8.7. Что такое phpMyAdmin
-
Пример отраженной XSS в phpMyAdmin
8.8. Что такое переменная PHP_SELF
-
Отраженная XSS в переменной PHP_SELF
8.9. Что такое заголовки HTTP
- Отраженная XSS в заголовке Refere
-
Отраженная XSS в заголовке User-Agent
-
Отраженная XSS в пользовательских заголовках
8.10. Хранимые XSS
- Хранимые XSS в записях блогов
-
Хранимые XSS при смене пользовательских данных
-
Хранимые XSS в Cookies
-
Хранимые XSS в SQLiteManager
-
Хранимые XSS в заголовках HTTP
8.11. Защита от XSS атак
Лабораторная работа: Выполнение атак на учебный веб-сайт с помощью отраженных и хранимых XSS и защита сайта от таких атак
Модуль 9. Небезопасная десериализация
9.1. Что такое сериализация и десериализация
9.2. Принципы атак на небезопасную десериализацию
- Демонстрация инъекции PHP объекта
-
Инъекция бэкдора при десериализации
-
Небезопасная десериализация в JavaScript
Лабораторная работа: Выполнение атак на учебный веб-сайт с уязвимостью небезопасной десериализации и защита сайта от таких атак
Модуль 10. Использование компонентов с известными уязвимостями
10.1. Концепции инвентаризации уязвимостей
10.2. Что такое переполнение буфера
- Локальные атаки на переполнение буфера
-
Удаленные атаки на переполнение буфера
-
SQL инъекция в Drupal (Drupageddon)
-
Уязвимость Heartbleed
-
Удаленное исполнение кода в PHP CGI
-
Атака на функцию PHP Eval
-
Уязвимость в phpMyAdmin BBCode Tag XSS
-
Уязвимость Shellshock
-
Подключение локального файла в SQLiteManager
-
Инъекция PHP кода в SQLiteManager
-
XSS в SQLiteManager
Лабораторная работа: Выполнение атак на учебный веб-сервер с использованием эксплойтов на известные уязвимости и защита сервера от таких атак
Модуль 11. Отсутствие журналирования и мониторинга
11.1. Концепции журналирования в веб-приложениях
- Пример недостаточного журналирования
-
Пример уязвимости при журналировании
-
Пример недостаточного мониторинга
Лабораторная работа: Изучение концепций и практических примеров отсутствия журналирования и мониторинг