Тактика защиты и нападения на Web-приложения

Для системных администраторов.

Низамутдинов М. Ф."Тактика защиты и нападения на Web-приложения" БХВ- Петербург, 2005 год, 432 стр. (6,83 мб. djvu+ файлы диска)

Web-хакинг - как он есть. В книге исследуются вопросы защиты и нападения, эксплуатации и обнаружения уязвимостей в программном коде Web- сервисов и приложений. Приводится информация по часто встречающимся уязвимостям в Web-приложениях. Даются рекомендации по написанию защищенного кода. Акцент сделан на методах защиты баз данных от SQL-инъекций. Рассказано о принципах построения системы авторизации и аутентификации, исходя из основных требований безопасности.

Рассмотрена технология XSS (межсайтового скриптинга), принимая во внимание создание безопасного кода для: чатов, форумов и электронной почты. Уделено внимание вопросам серверной безопасности и защите сайта, принимая во внимание особенности хостинговой компании. Приводится анализ и описание вируса, размножающегося исключительно через уязвимости в Web-приложениях. Материал книги с практическими примерами и рекомендациями будет полезен для системных администраторов. В файлах диска представлены примеры скриптов, описываемых в книге.
ISBN 5-94157-599-8
Оглавление книги.

Глава 1. Интернет - "враждебная" среда 11
1.1. Динамика — прародительница всех дыр 11
1.2. Устойчивые системы 12
1.3. Фильтрация 15
1.4. Когда фильтрации недостаточно 17
1.5. Основные принципы безопасного программирования 20

Глава 2. Уязвимости в скриптах 23
2.1 .Ошибки при различных методах передачи данных 23
2.1.1. HTTP GET 23
2.1.2. HTTP POST 25
2.1.3. GET & POST 27
2.1.4. HTTP cookie 30
2.1.5. Hidden-поля 33
2.1.6. Имитация НТТР-сеанса 34
2.1.7. Изменение посылаемых данных 36
2.2. Уязвимости в РНР-скриптах 36
2.2.1. Инъекция исходного кода РНР 37
2.2.2. Отсутствие инициализации переменных 64
2.2.3. Ошибки во включаемых файлах 71
2.2.4. Ошибки при загрузке файлов 77
2.3 Специфичные ошибки в Perl-скриптах 83
2.3.1. Ошибка Interna) Server Error 83
2.3.2. Создание процесса в open() 87
2.3.3. Инъекция Perl-кода в функцию require 91
2.3.4. Выполнение и просмотр включаемых файлов 95
2.4. Ошибки, не связанные с конкретным языком программирования 97
2.4.1. Ошибки вывода произвольных файлов 97
2.4.2. Внедрение в функцию systemQ 106
2.4.3. Ошибки в загрузке файлов 112
2.4.4. Заголовок REFERER и X-FORWАRDED-FOR 124
2.4.5. Раскрытие пути другой информации 129

Глава 3. SQL - инъекция, и с чем её едят 131
3.1. Нахождение уязвимостей 131
3.1.1. Если выводошибок включен 132
3.1.2. Если ошибки не выводятся 133
3.2. Исследование запроса 142
3.2.1. Тип запроса 143
3.2.2. Кавычки в запросе 143
3.2.3. Пример 152
3.3. MySQL 160
3.3.1. Версии и особенности MySQL 161
3.3.2. Разграничение прав в MySQL 166
3.3.3. Определение MySQL 167
3.3.4. MySQL 4.x и похищение данных 176
3.3.5. MySQL 3.x и похищение данных 191
3.3.6. MySQL и файлы 199
3.3.7. Обход подводных камней 206
3.3.8. DOS в MySQL-инъекции 212
3.4. Другие типы серверов баз данных 214
3.4.1. PostgreSQL 214
3.4.2. MsSQL 221
3.4.3. Oracle 222
3.5. Заключение 223

Глава 4. Безопасная авторизация и аутентификация 225
4.1. Вход в систему 226
4.1.1. Длинный URL 226
4.1.2. Система аутентификации со стороны клиента 228
4.1.3. Одиночный пароль 231
4.1.4. Имя и пароль 232
4.2. Последующая аутентификация 232
4.2.1. HTTP cookie 233
4.2.2. Сессии 236
4.3. HTTP Basic-аутентификация 240
4.4. HTTPS 250
4.5. Приемы, улучшающие защиту 251
4.5.1. Ограничение по IP-адресу 251
4.5.2. Восстановление пароля 252
4.5.3. Достаточно хорошая защита 255
4.6. Заключение 259

Глава 5. XSS и похищенные cookie 261
5.1. Основы 261
5.2. Опасность уязвимости 268
5.2.1. Изменение вила страниц. 270
5.2.2. Отправка данных методом JavaScript 280
5.2.3. Обход подводных камней 283
5.2.4, Получение cookies пользователей 285
5.3. Сбор статистики 289
5.4. Выполнение неявных действий администратором 292
5.5. Механизмы фиксации сессии 294
5.6. Уязвимость в обработке событий 298
5.7. Внедрение JavaScript в адресной строке 302
5.8. Как защититься от уязвимости 303

Глава 6. Миф о безопасной конфигурации 309
6.1. Безопасная настройка РНР 310
6.1.1. Директива конфигурации allow_url_fopen 310
6.1.2. Директива конфигурации display_errors 311
6.1.3. Магические кавычки 312
6.1.4. Глобальные переменные 313
6.1.5. Определение РНР 315
6.1.6. Некоторые другие директивы конфигурации 316
6.1.7. Защищенный режим РНР 317
6.2. Модуль Apache mod security 323
6.2.1. Универсальный метод обхода mod security 328
6.3. Методы пассивного анализа и обхода 336
6.3.1. Просмотр HTML 336
6.3.2. Hidden-ноля и JavaScript 338
6.4. Ограничения в HTML 343
6.5. Log-файлы и определение атакующего 346
6.6. Заключение 349

Глава 7. Безопасность в условиях shared hosting 351
7.1. Доступ к файлам владельцев систем 351
7.2. Файлы и Web-cepeep 353
7.3. Хостинг и базы данных 364
7.4. Проблема открытого кода 371
7.5. Точка зрения нападающего 380
7.5.1. Информация с сайга хостинга 380
7.5.2. Реверс-зона DNS 383
7.5.3. Информация из поисковых систем 383
7.5.4. Информация из базы данных mia-aft 383
7.5.5. Кэш какого-либо DNS-сервера 384
7.6. Заключение 384

Глава 8. Концептуальный вирус 387
8.1. Идея создания 387
8.2. Анализ существующих вирусов 389
8.3. Поиск 391
8.4. Заражение 395
8.5. Заключение 397
Заключение 399

Приложение 1. Описание компакт-диска 401
Список файлов 401
Установка ПО с диска 406

Приложение 2. Задачи на проникновение в тестовые системы 407
Задача 1-6 407-410

Приложение 3. Решение задач 411
Решение задач 1-6 411-420

Предметный указатель 423
Скачать книгу бесплатно6,83 мб. djvu Скачать компакт-диск бесплатно38,2 Кб. djvu