2009г
Количество страниц:320
Рассмотрена система безопасности Web-серверов и типичные ошибки, совершаемые Web-разработчиками при написании сценариев на языках PHP, ASP и Perl. Приведены примеры взлома реальных Web-сайтов, имеющих уязвимости, в том числе и популярных. В теории и на практике рассмотрены распространенные хакерские атаки: DoS, Include, SQL-инъекции, межсайтовый скриптинг, обход аутентификации и др. Описаны основные приемы защиты от атак и рекомендации по написанию безопасного программного кода. Во втором издании добавлены новые примеры реальных ошибок, а также описание каптча. Компакт-диск содержит листинги из книги и программы автора
Оглавление книги
Web-сервер глазами хакера. 2-е изд. Фленов (+ CD)
Оглавление Введение 1
Что не вошло в книгу 3
Интернет 3
Благодарности 4
Глава 1. Основы безопасности
5
1.1. Социальная инженерия 5
1.2. Природа взлома 8
1.3. Исследование 10
1.3.1. Определение типа операционной системы 13
1.3.2. Определение имен работающих служб 15
1.3.3. Использование эксплоитов 16
1.3.4. Автоматизация 18
1.4. Взлом Web-сервера 23
1.4.1. Анализатор Web-уязвимостей 24
1.4.2. Взлом с помощью поисковой системы 25
1.5. Подбор паролей 29
1.6. Троянские программы 33
1.7. Denial of Service (DoS) 35
1.7.1. Distributed Denial of Service (DDoS) 39
1.8. Программы для подбора паролей 40
1.9. Получение прав определенного пользователя 42
1.10. Меры безопасности 43
1.10.1. Защита Web-сервера 44
1.10.2. Модули безопасности Apache 46
1.11. Права доступа 49
1.11.1. Права сценариев Web-сервера 49
1.11.2. Права системных сценариев 50
1.11.3. Права доступа к СУБД 50
1.12. Сложные пароли 54
1.13. Не все так безнадежно 54
1.14. Ошибки есть, их не может не есть 56
1.14.1. Самостоятельно написанные программы 57
1.14.2. Решения Open Source 57
1.14.3. Программы, написанные под заказ 59
1.15. Сложность защиты 60
Глава 2. Простые методы взлома
61
2.1. Накрутка голосования 61
2.1.1. Вариант накрутки № 1 62
2.1.2. Вариант накрутки № 2 63
2.1.3. Вариант накрутки № 3 63
2.1.4. Защита от накрутки 64
2.2. Флуд 67
2.2.1. Бомбардировка регистрациями 67
2.2.2. Защита от флуда 69
2.3. Опасная подписка на новости 71
2.4. CAPTCHA 75
2.4.1. Внутренний мир каптчи 76
2.4.2. Примеры некорректных каптч 78
2.4.3. Пример хорошей каптчи 82
Глава 3. Взлом PHP-сценариев
87
3.1. Неверное обращение к файлам 88
3.1.1. Пример реальной ошибки 88
3.1.2. Проблема include 93
3.1.3. Инъекция кода 98
3.2. Классика жанра: phpBB 100
3.3. Ничего лишнего 106
3.4. Автоматическая регистрация переменных 110
3.4.1. Метод GET 112
3.4.2. Метод POST 115
3.4.3. Уязвимость 118
3.4.4. Другие методы 119
3.4.5. Инициализация переменных 122
3.5. Принцип модульности 129
3.5.1. Конфигурационные файлы 130
3.5.2. Промежуточные модули 132
3.5.3. Скрытые функции 136
3.6. Проверка корректности параметров 137
3.7. Проблема регулярных выражений 139
3.8. Регулярные выражения Perl 139
3.9. Опасность переменных окружения 142
Глава 4. Работа с системными командами
145
4.1. Вызов системных команд 145
4.2. Защита от выполнения произвольных команд 150
4.3. Загрузка файлов 151
4.3.1. Проверка корректности файлов изображений 157
4.3.2. Проверка корректности текстовых файлов 160
4.3.3. Сохранение файлов в базе данных 160
4.3.4. Обращение к файловой системе 161
4.3.5. Угроза безопасности 164
4.4. Функция eval 165
Глава 5. SQL-инъекция (PHP + MySQL)
167
5.1. Поиск 168
5.2. Ошибка 171
5.2.1. Сбор информации 175
5.2.2. Использование уязвимости 181
5.2.3. Доступ к файловой системе 183
5.2.4. Поиск уязвимости 184
5.2.5. Процент опасности 185
5.2.6. Возможные проблемы 188
5.2.7. От теории к практике 189
5.3. Настройка защиты от SQL-инъекции 194
5.4. Настройка интерпретатора PHP 197
5.5. Защита СУБД 199
5.6. Некоторые рекомендации 201
5.7. Поиск уязвимого PHP-сценария 204
5.7.1. Ошибка в каталогах программ 204
5.7.2. О футболе 208
5.7.3. Macromedia ColdFusion 213
5.7.4. Просмотр записей по одной 214
5.7.5. Сенат США 217
5.7.6. Access 217
5.7.7. Беркли 219
5.8. Защита от инъекции в PHP 223
Глава 6. SQL-инъекция (ASP/ASP.NET + MS SQL Server)
227
6.1. Практика взлома 227
6.2. Особенности MS SQL Server 242
6.2.1. Опасные процедуры MS SQL Server 243
6.2.2. Распределение прав доступа 247
6.2.3. Опасные SQL-запросы 249
6.2.4. Рекомендации по безопасности MS SQL Server 252
6.3. Защита от инъекции в ASP.NET 254
Глава 7. Основные уязвимости Perl-сценариев
257
7.1. Работа с файловой системой 258
7.2. SQL-инъекция 261
7.3. Выполнение системных команд 266
7.4. Подключение файлов 266
Глава 8. DoS-атака на Web-сайт
269
8.1. Долго выполняющиеся SQL-запросы 269
8.2. Оптимизация работы с СУБД 270
8.2.1. Оптимизация SQL-запросов 271
8.2.2. Оптимизация базы данных 274
8.2.3. Выборка необходимых данных 276
8.2.4. Резюме 278
8.3. Оптимизация PHP 278
8.3.1. Кэширование вывода 279
8.3.2. Кэширование Web-страниц 280
8.4. Блокировки 283
8.5. Другие ресурсы 284
Глава 9. Авторизация
287
9.1. Аутентификация на Web-сервере 287
9.2. Собственная система аутентификации 289
9.3. Соль на рану 290
Глава 10. XSS
293
10.1. Основы XSS 293
10.2. Перехватываем данные 297
10.3. Сайт с реальной ошибкой 299
Заключение 305
Приложение. Описание компакт-диска 307
Литература 309
Предметный указатель 311
VI Оглавление V Оглавление