Оглавление Введение 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 Оглавление