Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Web-сервер глазами хакера

Рассмотрена система безопасности Web серверов и типичные ошибки, совершаемые Web разработчиками при написании сценариев на языках PHP, ASP и Perl. Приведены примеры взлома реальных Webсайтов, имеющих уязвимости. В теории и на практике рассмотрены распространенные хакерские атаки: DoS, Include, SQL инъекции, межсайтовый скриптинг, обход аутентификации и др. Описаны основные приемы защиты от атак и рекомендации по написанию безопасного программного кода. Компакт диск содержит листинги из книги, программы автора.


Оглавление Введение 1
Что не вошло в книгу 2
Благодарности 3

Глава 1. Основы безопасности

5
1.1. Социальная инженерия 5
1.2. Основы взлома 8
1.3. Исследование 10
1.3.1. Определение типа операционной системы 14
1.3.2. Определение имен работающих служб 15
1.3.3. Использование эксплоитов 16
1.3.4. Автоматизация 18
1.4. Взлом Web-сервера 23
1.4.1. Взлом с помощью поисковой системы 25
1.5. Подбор паролей 27
1.6. Троянские программы 29
1.7. Denial of Service (DoS) 32
1.7.1. Distributed Denial Of Service (DDoS) 35
1.8. Программы для подбора паролей 36
1.9. Получение прав определенного пользователя 38
1.10. Меры безопасности 39
1.10.1. Защита Web-сервера 40
1.10.2. Модули безопасности Apache 42
1.11. Права доступа 45
1.11.1. Права сценариев Web-сервера 45
1.11.2. Права системных сценариев 45
1.11.3. Права доступа к СУБД 46
1.12. Сложные пароли 50
1.13. Не все так безнадежно 50
1.14. Ошибки есть, их не может не есть 52
1.14.1. Самостоятельно написанные программы 53
1.14.2. Программы, написанные под заказ 53
1.14.3. Решения Open Source 54

Глава 2. Простые методы взлома

57
2.1. Накрутка голосования 57
2.1.1. Вариант накрутки № 1 58
2.1.2. Вариант накрутки № 2 59
2.1.3. Вариант накрутки № 3 59
2.1.4. Защита от накрутки 60
2.2. Флуд 62
2.2.1. Бомбардировка регистрациями 63
2.2.2. Защита от флуда 65
2.3. Опасная подписка на новости 66

Глава 3. Взлом PHP-сценариев

71
3.1. Неверное обращение к файлам 72
3.1.1. Пример реальной ошибки 72
3.1.2. Проблема include 77
3.1.3. Инъекция кода 83
3.2. Классика жанра: phpBB 85
3.3. Ничего лишнего 91
3.4. Автоматическая регистрация переменных 95
3.4.1. Метод GET 97
3.4.2. Метод POST 100
3.4.3. Уязвимость 103
3.4.4. Другие методы 104
3.4.5. Инициализация переменных 107
3.5. Принцип модульности 114
3.5.1. Конфигурационные файлы 115
3.5.2. Промежуточные модули 117
3.5.3. Скрытые функции 121
3.6. Проверка корректности параметров 122
3.7. Проблема регулярных выражений 124
3.8. Регулярные выражения Perl 124
3.9. Опасность переменных окружения 127

Глава 4. Работа с системными командами

129
4.1. Вызов системных команд 129
4.2. Защита от выполнения произвольных команд 134
4.3. Загрузка файлов 136
4.3.1. Проверка корректности файлов изображений 141
4.3.2. Проверка корректности текстовых файлов 144
4.3.3. Сохранение файлов в базе данных 145
4.3.4. Обращение к файловой системе 145
4.3.5. Угроза безопасности 149
4.4. Функция eval 149

Глава 5. SQL-инъекция (PHP + MySQL)

151
5.1. Поиск 152
5.2. Ошибка 155
5.2.1. Сбор информации 159
5.2.2. Использование уязвимости 165
5.2.3. Доступ к файловой системе 166
5.2.4. Поиск уязвимости 167
5.2.5. Процент опасности 168
5.2.6. Возможные проблемы 172
5.2.7. От теории к практике 173
5.3. Настройка защиты от SQL-инъекции 178
5.4. Настройка интерпретатора PHP 181
5.5. Защита СУБД 184
5.6. Некоторые рекомендации 185
5.7. Поиск уязвимого PHP-сценария 188
5.7.1. Ошибка в каталогах программ 188
5.7.2. О футболе 192
5.7.3. Macromedia ColdFusion 197

Глава 6. SQL-инъекция (ASP + MS SQL Server)

199
6.1. Практика взлома 199
6.2. Особенности MS SQL Server 212
6.2.1. Опасные процедуры MS SQL Server 212
6.2.2. Распределение прав доступа 216
6.2.3. Опасные SQL-запросы 218
6.2.4. Рекомендации по безопасности MS SQL Server 221

Глава 7. Основные уязвимости Perl-сценариев

225
7.1. Работа с файловой системой 226
7.2. SQL-инъекция 230
7.3. Выполнение системных команд 234
7.4. Подключение файлов 234

Глава 8. DoS-атака на Web-сайт

237
8.1. Долго выполняющиеся SQL-запросы 237
8.2. Оптимизация работы с СУБД 238
8.2.1. Оптимизация SQL-запросов 239
8.2.2. Оптимизация базы данных 242
8.2.3. Выборка необходимых данных 244
8.2.4. Резюме 246
8.3. Оптимизация PHP 246
8.3.1. Кэширование вывода 246
8.3.2. Кэширование Web-страниц 247
8.4. Блокировки 251
8.5. Другие ресурсы 252

Глава 9. Авторизация

255
9.1. Аутентификация на Web-сервере 255
9.2. Собственная система аутентификации 257

Глава 10. XSS

259
10.1. Основы XSS 259
10.2. Перехватываем данные 263
Заключение 265
Приложение. Описание компакт-диска 267
Литература 269
Предметный указатель 271
VI Оглавление V Оглавление

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Внимание!

А ты уже читал мою последнюю книгу о больших сайтах и приложениях? Узнай, что это такое здесь

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне