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