Слайд 2
![whoami Bogomolov Egor Links Comment Telegram: @empty_jack Telegram Channel: @YAH_Channel](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-1.jpg)
whoami
Bogomolov Egor
Links
Comment
Telegram: @empty_jack
Telegram Channel: @YAH_Channel
E-mail: empty.jack@yandex.ru
Corp: e.bogomolov@hackeru.com
Certificates
Offensive Security Certified Professional (OSCP)
Work experience
Positive Technologies
| InfoSec.ru | Bi.Zone | Wallarm | HackerU
Now
Independent Security Expert
Слайд 3
![ТЕМЫ КУРСА Введение. Обзор веб-технологий Структура веб-приложений Первоначальный анализ, сбор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-2.jpg)
ТЕМЫ КУРСА
Введение.
Обзор веб-технологий
Структура веб-приложений
Первоначальный анализ, сбор информации
Уязвимости
серверной части веб-приложений
Тестирование механизмов аутентификации и менеджмента сессий
Логические уязвимости
Безопасность протокола HTTP
Безопасность клиентской части веб-приложений
Вопросы на собеседовании
Слайд 4
![ТЕМЫ ЗАНЯТИЯ Обзор тестирования веб-приложений Что есть полезного для изучающих](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-3.jpg)
ТЕМЫ ЗАНЯТИЯ
Обзор тестирования веб-приложений
Что есть полезного для изучающих пентест веба
HTTP
Кодировки в
вебе
HTTPS vs HTTP
HTML, Javascript, CSS.
Слайд 5
![Обзор тестирования веб-приложений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-4.jpg)
Обзор тестирования веб-приложений
Слайд 6
![Проект Пресейл - определение объема работы и уточнение деталей Договор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-5.jpg)
Проект
Пресейл - определение объема работы и уточнение деталей
Договор
Авторизационное письмо - перед
началом работы клиент подтверждает что разрешает такой-то компании его пенетрировать, с таких то IP-адресов, в такие то даты и т.д. и т.п.
Непосредственный анализ защищенности
Формирование рекомендаций и написание отчета.
Слайд 7
![Тестирование Тестирование веб-приложений может быть как отдельным проектом, так и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-6.jpg)
Тестирование
Тестирование веб-приложений может быть как отдельным проектом, так и входить
в более крупный проект (например, в проект по внешнему тестированию на проникновение)
Слайд 8
![Подходы к анализу Черный ящик - специалисту не известно ничего](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-7.jpg)
Подходы к анализу
Черный ящик - специалисту не известно ничего о системе
Серый
ящик - клиент предоставляет ограниченный доступ, например, с правами обычного пользователя
Белый ящик - клиент предоставляет полный доступ к приложению, в том числе к исходным кодам
Слайд 9
![Что есть полезного для изучающих пентест веба](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-8.jpg)
Что есть полезного для изучающих пентест веба
Слайд 10
![Testing Guide Cheat sheets Developer Guide OWASP Top 10 OWASP - Open Web Application Security Project](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-9.jpg)
Testing Guide
Cheat sheets
Developer Guide
OWASP Top 10
OWASP - Open Web
Application Security Project
Слайд 11
![https://portswigger.net/web-security Portswigger Web Security Academy Тут есть как текстовые материалы,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-10.jpg)
https://portswigger.net/web-security
Portswigger Web Security Academy
Тут есть как текстовые материалы, так и лаборатории,
в
которых можно упражняться
Слайд 12
![Площадки для тренировок Capture the Flag (CTF) - соревнования хакеров](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-11.jpg)
Площадки для тренировок
Capture the Flag (CTF) - соревнования хакеров
https://ctftime.org/ - агрегатор
Основные
категории:
web
crypto
reverse
binary (он же pwn, он же exploit)
forensics
osint
Слайд 13
![Площадки для тренировок ever CTF https://www.root-me.org/ https://w3challs.com/ Vulnerable Applications bWAPP Damn Vulnerable Web Application etc](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-12.jpg)
Площадки для тренировок
ever CTF
https://www.root-me.org/
https://w3challs.com/
Vulnerable Applications
bWAPP
Damn Vulnerable Web Application
etc
Слайд 14
![Bug Bounty Поиск уязвимостей за вознаграждение https://www.hackerone.com https://bugcrowd.com](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-13.jpg)
Bug Bounty
Поиск уязвимостей за вознаграждение
https://www.hackerone.com
https://bugcrowd.com
Слайд 15
![Площадки для тренировок](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-14.jpg)
Слайд 16
![Программное обеспечение Burp Suite Сервис хранения заметок](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-15.jpg)
Программное обеспечение
Burp Suite
Сервис хранения заметок
Слайд 17
![Репозитории на github https://github.com/danielmiessler/SecLists - словари для всех случаев жизни](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-16.jpg)
Репозитории на github
https://github.com/danielmiessler/SecLists - словари для всех случаев жизни
https://github.com/swisskyrepo/PayloadsAllTheThings - информация
по эксплуатации различных уязвимостей
https://github.com/tennc/webshell - коллекция веб-шеллов
Слайд 18
![HTTP](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-17.jpg)
Слайд 19
![HTTP HyperText Transfer Protocol Протокол 7 уровня ISO OSI. Работает](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-18.jpg)
HTTP
HyperText Transfer Protocol
Протокол 7 уровня ISO OSI.
Работает поверх TCP.
Клиент-серверный протокол
Сейчас используются
две версии: HTTP/1.1 и HTTP/2
Слайд 20
![HTTP request](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-19.jpg)
Слайд 21
![HTTP response](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-20.jpg)
Слайд 22
![Методы HTTP (HTTP verbs) Метод – операция, выполняемая над ресурсом.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-21.jpg)
Методы HTTP (HTTP verbs)
Метод – операция, выполняемая над ресурсом.
Виды методов:
GET – получает содержимое узла (Read)
POST – передаёт пользовательские данные (Write).
PUT – загружает содержимое на сервер, чаще обновляет существующее (Update)
DELETE – удаляет указанный ресурс (Delete)
HEAD – аналогичен GET, но возвращает только заголовки
OPTIONS – определение параметров сервера (почти не используется).
и другие (TRACE, PATCH, CONNECT).
Слайд 23
![Коды состояния ответов HTTP Код состояния: • 1xx – информационной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-22.jpg)
Коды состояния ответов HTTP
Код состояния:
• 1xx – информационной (102 Processing);
• 2xx – успех (200 OK);
• 3xx – перенаправление (301 Moved Permanently);
• 4xx – ошибка клиента (400 Bad Request);
• 5xx – ошибка сервера (500 Internal Server Error)
Слайд 24
![URL - Uniform Resource Locator Структура: schema://host:port/path?parameter=value#anchor Схема: http, https,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-23.jpg)
URL - Uniform Resource Locator
Структура: schema://host:port/path?parameter=value#anchor
Схема: http, https, ftp и другие;
Узел:
доменное имя или IP-адрес;
Порт: порт ресурса (80 – порт по умолчанию для HTTP);
Путь: путь к ресурсу;
Параметр: отправляемые на сервер переменные имеют вид – parameter0=value0¶meter1=value1;
Якорь: идентификатор элемента HTML внутри документа для перемещения браузера на него;
Слайд 25
![HTTP - текстовый протокол Демонстрация запроса через nc](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-24.jpg)
HTTP - текстовый протокол
Демонстрация запроса через nc
Слайд 26
![Демонстрация и настройка среды Burp FoxyProxy Инструменты разработчика браузера](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-25.jpg)
Демонстрация и настройка среды
Burp
FoxyProxy
Инструменты разработчика браузера
Слайд 27
![HTML](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-26.jpg)
Слайд 28
![HTML - HyperText Markup Language Язык разметки гипертекста. Является XML-образным языком. (демонстрация)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-27.jpg)
HTML - HyperText Markup Language
Язык разметки гипертекста.
Является XML-образным языком.
(демонстрация)
Слайд 29
![Javascript и CSS Javascript - язык программирования, который позволяет работать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-28.jpg)
Javascript и CSS
Javascript - язык программирования, который позволяет работать с отображаемыми
в браузере элементами. Позволяет создавать динамические веб-интерфейсы
CSS - Cascading Style Sheets - язык описания внешнего вида документа. Декларирует как браузер должен отображать тот или иной элемент HTML.
Слайд 30
![Кодировки в вебе HEX - кодирует каждый символ в два](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-29.jpg)
Кодировки в вебе
HEX - кодирует каждый символ в два символа из
набора `0123456789abcedf'. Шестнадцатиричная кодировка
`admin/test` -> `61646d696e2f74657374`
URL - кодирует некоторые символы в HEX, добавляя перед ними символ %
`admin/test` -> `admin%2ftest`
Base64 - кодирует 3 байта в 4 символа из набора [a-z A-Z 0-9] а также / и +. В конце может быть несколько символов = для выравнивания.
`admin/test` -> `YWRtaW4vdGVzdA==`
Слайд 31
![Кодировки в вебе Демонстрация кодировок CyberChef: https://gchq.github.io/CyberChef/ Burp Автоматическая URL-кодировка параметров](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-30.jpg)
Кодировки в вебе
Демонстрация кодировок
CyberChef: https://gchq.github.io/CyberChef/
Burp
Автоматическая URL-кодировка параметров
Слайд 32
![Кодировки в вебе Практика. Раскодируйте: 4865782d656e636f64696e67272068657265 %48%34%43%6b%33%52%59%30%55 %22hack%65r%22%20%69%73%20%68er%65%3f SSBMaUszIFAzblQzc3Q=](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-31.jpg)
Кодировки в вебе
Практика.
Раскодируйте:
4865782d656e636f64696e67272068657265
%48%34%43%6b%33%52%59%30%55
%22hack%65r%22%20%69%73%20%68er%65%3f
SSBMaUszIFAzblQzc3Q=
Слайд 33
![HTTP vs HTTPS HTTPS - это тот же HTTP, который](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-32.jpg)
HTTP vs HTTPS
HTTPS - это тот же HTTP, который работает поверх
SSL/TLS.
Данные передаваемые по HTTPS криптографически защищены от перехвата в канале (просмотра и модификации).
Важные данные не должны передаваться по HTTP без шифрования.
Слайд 34
![Content-Type Content-Type - заголовок HTTP. Определяет тип передаваемого содержимого. В](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-33.jpg)
Content-Type
Content-Type - заголовок HTTP. Определяет тип передаваемого содержимого. В зависимости от
него веб-приложение и браузер будут обрабатывать тело HTTP по разному
Для указания формата использует MIME типы.
Слайд 35
![Content-Type Браузер как правило использует в запросах: text/plain application/x-www-form-urlencoded multipart/form-data](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-34.jpg)
Content-Type
Браузер как правило использует в запросах:
text/plain
application/x-www-form-urlencoded
multipart/form-data
<демонстрация различия>
Слайд 36
![Content-Type Веб-приложение использует в ответах: text/html text/javascript text/css application/json text/xml и многие другие.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-35.jpg)
Content-Type
Веб-приложение использует в ответах:
text/html
text/javascript
text/css
application/json
text/xml
и многие другие.
Слайд 37
![Практика Задачи на Root-me: HTML source HTTP - User-agent HTTP](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-36.jpg)
Практика
Задачи на Root-me:
HTML source
HTTP - User-agent
HTTP - Headers
HTTP - Improper redirect
HTTP
- Verb tampering
HTTP - Open redirect
Слайд 38
![Тест для самопроверки В LMS](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-37.jpg)
Тест для самопроверки
В LMS
Слайд 39
![Дополнительные задания Оставшиеся задания на root-me](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/248148/slide-38.jpg)
Дополнительные задания
Оставшиеся задания на root-me