Об авторе....17
О научном редакторе....17
Предисловие....18
Благодарности....21
Введение....23
Привлекательность атак на веб-API....23
Структура издания....24
Взлом API на примере ресторана....25
От издательства....27
О научном редакторе русскоязычного издания....27
ЧАСТЬ I. БЕЗОПАСНОСТЬ ВЕБ-АРI....28
Глава О. Подготовка к тестированию безопасности....29
Получение разрешения....29
Моделирование угроз для тестирования API....30
Какие элементы API нужно тестировать....32
Тестирование привилегированного доступа к API....33
Межсетевые экраны веб-приложений....33
Тестирование мобильных приложений....34
Аудит документации API....34
Тестирование ограничения частоты запросов....34
Ограничения и исключения....35
Тестирование безопасности облачных API....36
Тестирование на отказ в обслуживании....37
Отчетность и повторное тестирование после устранения уязвимостей....38
Несколько слов о программах по поиску уязвимостей....38
Резюме....40
Глава 1. Основы работы веб-приложений....41
Основы веб-приложений....41
URL....42
HTTP-запросы....43
HTTP-ответы....44
Коды состояния HTTP....45
HTTP-методы....47
Сессионность и отсутствие сессий в HTTP....48
Серверные базы данных....49
SQL....50
NoSQL....51
Роль API в современной архитектуре....52
Резюме....53
Глава 2. Устройство веб-АР1....54
Как работают веб-АР1....54
Стандартные типы веб-АР1....57
RESTful API....58
GraphQL....62
Спецификации REST API....66
Форматы обмена данными в API....67
JSON....67
XML....69
YAML....70
Аутентификация в API....71
Базовая аутентификация....72
API-ключи....72
Токены JWT....74
Алгоритмы НМАС....75
Метод OAuth 2.0....76
Отсутствие аутентификации....78
Изучаем API Twitter на примере....78
Резюме....80
Глава 3. Типичные уязвимости API....81
Утечки данных....81
Сбой авторизации на уровне объектов....82
Сбой аутентификации пользователей....84
Избыточное раскрытие данных....86
Недостаток ресурсов и неограниченность частоты запросов....87
Сбой авторизации на уровне функций....87
Массовое переназначение параметров....89
Ошибки конфигурации безопасности....90
Инъекции....93
Некорректное управление активами....95
Уязвимости бизнес-логики....96
Резюме....97
ЧАСТЬ II. СОЗДАНИЕ ТЕСТОВОЙ СРЕДЫ ДЛЯ РАБОТЫ С API....98
Глава 4. Конфигурация системы для взлома API....99
Kali Linux....99
Анализ веб-приложений с помощью DevTools....100
Перехват и изменение запросов с помощью Burp Suite....103
Настройка FoxyProxy....104
Добавление сертификата Burp Suite....105
Интерфейс Burp Suite....106
Перехват трафика....108
Изменение запросов с помощью Intruder....110
Составление API-запросов в Postman....114
Конструктор запросов....116
Окружения....119
Коллекции....120
Инструмент Collection Runner....124
Фрагменты кода....124
Панель Tests....125
Совместная работа Postman и Burp Suite....126
Дополнительные инструменты....127
Сбор информации с помощью OWASP Amass....128
Поиск конечных точек API с помощью Kiterunner....129
Поиск уязвимостей с помощью Nikto....131
Сканирование на уязвимости с помощью OWASP ZAP....131
Фаззинг с помощью Wfuzz....132
Поиск HTTP-параметров с помощью Arjun....134
Резюме....135
Упражнение 1. Перечисление учетных записей пользователей в RESN API....135
Глава 5. Создание уязвимых API-целей для тестирования....140
Создание хоста с Linux....141
Установка Docker и Docker Compose....141
Установка уязвимых приложений....142
Completely Ridiculous API (crAPI)....142
OWASP DevSIop: Pixi....143
OWASP Juice Shop....144
Damn Vulnerable GraphQL Application....145
Добавление других уязвимых приложений....146
Тестирование API с помощью TryHackMe и HacklheBox....146
Резюме....148
Упражнение 2. Поиск уязвимостей API....148
ЧАСТЬ III. АТАКИ НА API....152
Глава 6. Обнаружение API....153
Пассивная разведка....153
Процесс пассивной разведки....154
Поиск через Google....155
Сервис Shodan....157
Инструмент OWASP Amass....159
Открытые данные на сайте GitHub....161
Активная разведка....165
Процесс активной разведки....165
Базовое сканирование с помощью Nmap....167
Поиск скрытых путей в robots.txt....168
Поиск конфиденциальной информации с помощью Chrome DevTools....168
Проверка API с помощью Burp Suite....172
Сканирование URI с помощью OWASP ZAP....173
Перебор URI с помощью Gobuster....176
Поиск содержимого API с помощью Kiterunner....177
Резюме....179
Упражнение 3. Активная разведка при тестировании методом "черного ящика....180
Глава 7. Анализ конечных точек....185
Поиск формулировок запросов....185
Поиск информации в документации API....186
Импорт спецификаций API....190
Обратная разработка API....192
Добавление требований аутентификации API в Postman....195
Анализ функциональности....197
Тестирование предусмотренной функциональности....198
Выполнение привилегированных действий....199
Анализ ответов API....201
Поиск утечек информации....201
Поиск ошибок конфигурации безопасности....202
Подробные сообщения об ошибках....202
Слабое шифрование трафика....203
Проблемные конфигурации....203
Анализ избыточных данных в ответах API....203
Поиск уязвимостей бизнес-логики....205
Резюме....206
Упражнение 4. Создание коллекции для crAPI т обнаружение представления излишних данных....207
Глава 8. Взлом механизмов аутентификации....212
Классические атаки на механизмы аутентификации....213
Полный перебор паролей....213
Взлом механизмов сброса паролей и многофакторной аутентификации....213
Распыление паролей....216
Использование Вазе64-аутентификации в атаках методом перебора....219
Подделка токенов....220
Анализ загруженных токенов вручную....221
Анализ токенов в процессе захвата трафика....223
Перебор предсказуемых токенов....225
Злоупотребление токенами JWT....227
Распознавание и анализ токенов JWT....227
Подделка токенов с алгоритмом "none....230
Атака с подменой алгоритма....230
Взлом секрета JWT....232
Резюме....232
Упражнение 5. Взлом подписи JWT в crAPI....233
Глава 9. Фаззинг....236
Эффективный фаззинг....236
Выбор полезной нагрузки для фаззинга....238
Выявление аномалий....239
Широкий и глубокий фаззинг....241
Широкий фаззинг в программе Postman....242
Глубокий фаззинг в программе Burp Suite....245
Глубокий фаззинг с помощью Wfuzz....248
Широкий фаззинг для поиска уязвимостей управления активами....250
Тестирование HTTP-методов с помощью программы Wfuzz....252
Углубленный фаззинг для обхода фильтрации входных данных....253
Фаззинг для выявления уязвимостей типа обхода каталогов....254
Резюме....255
Упражнение 6. Фаззинг и уязвимости управлениия активами....255
Глава 10. Эксплуатация уязвимостей авторизации....260
Поиск ошибок авторизации на уровне объектов....260
Поиск идентификаторов ресурсов....261
А-В-тестирование в рамках поиска BOLA....263
BOLA-атаки через побочные каналы....263
Поиск ошибок авторизации на уровне функций....264
А-В-тестирование в рамках поиска BFLA-уязвимостей....265
Тестирование на BFLA в Postman....266
Советы по взлому механизмов авторизации....268
Переменные коллекции в программе Postman....268
Функция замены по шаблону в программе Burp Suite....269
Резюме....270
Упражнение 7. Поиск местоположения автомобиля другого пользователя....270
Глава 11. Массовое переназначение параметров....275
Поиск целей для массового переназначения параметров....275
Регистрация учетной записи....276
Несанкционированный доступ к организациям....276
Поиск переменных, уязвимых к массовому переназначению....277
Поиск переменных в документации....277
Фаззинг неизвестных переменных....278
Массовое переназначение параметров вслепую....279
Автоматизация атак массового переназначения параметров с помощью Arjun и Intruder....279
Сочетание атак BFLA и массового переназначения....281
Резюме....282
Упражнение 8. Изменение цен на товар в интернет-магазине....282
Глава 12. Инъекции....287
Выявление уязвимостей перед инъекциями....287
Межсайтовый скриптинг (XSS)....288
Меж-АРI-скриптинг (XAS)....290
SQL-инъекции....291
Тестирование вручную с использованием метасимволов....293
SQLmap....294
NoSQL-инъекции....295
Инъекции команд операционной системы....298
Резюме....300
Упражнение 9. Подделка купонов путем NoSQL-инъекций....300
ЧАСТЬ IV. ТЕСТИРОВАНИЕ API В РЕАЛЬНЫХ УСЛОВИЯХ....304
Глава 13. Обход защитных механизмов и проверка ограничения частоты запросов....305
Обход механизмов защиты API....305
Как устроены механизмы защиты....306
Выявление механизмов защиты API....307
Использование временных учетных записей....308
Приемы обхода защитных механизмов....308
Автоматизация обхода с помощью Burp Suite....311
Автоматизация обхода с помощью Wfuzz....313
Проверка ограничений частоты запросов....315
О мягких ограничениях частоты запросов....316
Обход ограничений с помощью изменения пути....318
Подмена заголовков Origin....319
Ротация IP-адресов в программе Burp Suite....320
Резюме....324
Глава 14. Взлом GraphQL....325
Запросы GraphQL и IDE....325
Активная разведка....327
Сканирование....327
Просмотр приложения DVGA в браузере....328
Использование инструментов DevTools....329
Обратная разработка GraphQL API....330
Перебор каталогов при поиске конечной точки GraphQL....331
Подделка cookie-файлов для активации GraphiQL IDE....333
Обратная разработка GraphQL-запросов....334
Обратная разработка GraphQL-коллекции путем интроспекции....336
Анализ GraphQL API....337
Составление запросов с помощью Documentation Explorer....337
Работа с расширением InQL в программе Burp Suite....339
Анализ на внедрение команд методом фаззинга....342
Резюме....346
Глава 15. Случаи компрометации данных и программы по поиску уязвимостей....347
Громкие компрометации данных....348
Компрометация учетных данных в компании Peloton....348
Раскрытие данных о пользователях Почтовой службы США....350
Инцидент с API оператора T-Mobile....352
Программы по поиску уязвимостей....353
Цена утечки API-ключей....354
Проблемы с авторизацией в приватном API....355
Starbucks: компрометация, которой не было....357
BOLA-уязвимость в GraphQL API Instagram....359
Резюме....360
Заключение....361
Приложение А. Чек-лист взломщика API....362
Приложение Б. Дополнительные ресурсы....364
«Хакинг API» — это экспресс-курс по тестированию безопасности веб-API. Взламывайте API, ищите уязвимости, которые часто упускают даже опытные специалисты, и обеспечивайте безопасность ваших собственных API. Сначала вы разберетесь, как на самом деле работают REST API и какие уязвимости для них наиболее характерны. Затем создадите эффективную среду тестирования API с помощью Burp Suite, Postman, Kiterunner, OWASP Amass и других инструментов, предназначенных для разведки, анализа и тестирования защищенности конечных точек. Затем, вооруженные этими знаниями, научитесь проводить самые популярные виды атак для взлома механизмов аутентификации, искать ошибки в бизнес-логике и выявлять специфические слабые места API. Узнаете, что такое межсайтовый скриптинг и массовое переназначение параметров, а также какие уязвимости, связанные с инъекцией кода, часто встречаются в веб-приложениях.