Чтение онлайн

на главную

Жанры

Техника сетевых атак
Шрифт:

На этом описание методов протокола HTTP пришлось бы и закончить, если бы в 1996 году не появилась новая, значительно улучшенная спецификация - HTTP/1.1. Подробно все нововведения описаны в RFC-2068, здесь же будут перечислены лишь основные моменты.

Врезка «замечание»

Спецификация HTTP/1.0 поддерживает метод HEAD, который аналогичен GET, но возвращает лишь заголовок ответа, без тела сообщения.

Как правило, он используется для быстрой проверки доступности ресурса, что делает его привлекательным кандидатом на роль переборщика имен файлов, в надежде получить несанкционированный доступ к данным, «защита» которых базируется на одном лишь засекречивании ссылок. Удивительно, но такая атака часто срабатывает.

Прежде всего, требует пояснения ситуация, связанная с попыткой использования любого метода, с указанием номера новой версии. Например, на запрос “GET /~kpnc/ HTTP/1.1” сервер возвратит сообщение об ошибке 400 - “неверный запрос”. Такая ситуация продемонстрирована в примере, приведенном ниже:

·

GET /~kpnc/ HTTP/1.1

·

· HTTP/1.1 400 Bad Request

· Date: Tue, 18 Apr 2000 14:18:41 GMT

· Server: Apache/1.3.6 (Unix)

· Connection: close

· Transfer-Encoding: chunked

· Content-Type: text/html

·

· 184

· «!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"»

· «HTML»

· «HEAD»

· «TITLE» 400 Bad Request «/TITLE»

· «/HEAD»

· «BODY»

· «H1» Bad Request «/H1»

· Your browser sent a request that this server could not understand.«P»

· client sent HTTP/1.1 request without hostname

· ( see RFC2068 section 9, and 14.23 ): /~kpnc/«P»

· «HR»

· «ADDRESS»Apache/1.3.6 Server at lightning.prohosting.com Port 80«/ADDRESS»

· «/BODY»

· «/HTML»

Ознакомившись с ответом сервера, мысленно поблагодарим разработчиков за разъяснение причин отказа в обслуживании. Открыв секцию 14.23 технической документации RFC-2068, можно узнать, что, начиная с версии 1.1, становиться обязательным поле “Host”, содержащее базовый адрес и порт узла. (“If the Host field is not already present… all Internet-based “HTTP/1.1” servers MUST respond with a 400 status code to any “HTTP/1.1” request message which lacks a Host header field”). Впрочем, указывать порт необязательно, при его отсутствии сервер использует значение по умолчанию [273]. Такой механизм позволяет отличать gateway-серверам внутренние ссылки от внешних, оптимизируя сетевой трафик.

Поэтому, запрос должен выглядеть приблизительно следующим образом (необходимые пояснения даны ниже):

· ; Подключение узлу kpnc . softclub . net

· TRACE /hello HTTP/1.1

· Host:kpnc.softclub.net

·

· HTTP/1.1 200 OK

· Date: Tue, 18 Apr 2000 18:37:47 GMT

· Server: Apache/1.3.12 (Unix) mod_perl/1.22 AuthMySQL Plus/2.20.2 PHP/3.0.14 rus/PL29.4

· Transfer-Encoding: chunked

· Content-Type: message/http

·

· 32

· TRACE /hello HTTP/1.1

· Host: kpnc.softclub.net

Метод TRACE [274] очень сильно напоминает Echo (эхо), используемое для тестирования качества линии связи и быстроты реакции сервера. Получив TRACE-запрос, узел должен немедленно вернуть его отправителю, указав в факультативном [275] поле “Age” количество секунд, потраченных сервером на обработку запроса. Это позволяет администраторам инспектировать сетевой трафик, пользователям - выбирать быстрейший сервер из нескольких зеркал, а злоумышленникам оценивать пагубность влияния различных запросов на сервер, направленных на попытку добиться отказа в обслуживании.

Врезка «информация»

На сегодняшний день большинство серверов не поддерживают спецификацию ниже HTTP/1.1, отказываясь обслуживать устаревшего клиента. www.prohosting.com - один из немногих, которых удалось найти автору этой книги для демонстрации запросов HTTP/0.9 и HTTP/1.0

Дополнительная информация о сервере может быть получена с помощью метода “OPTIONS” с указанием символа-джокера вместо имени ресурса (возвратить всю доступную информацию).

Например:

· OPTIONS * HTTP/1.1

· Host:kpnc.softclub.net

·

· HTTP/1.1 200 OK

· Date: Tue, 18 Apr 2000 19:00:58 GMT

· Server: Apache/1.3.12 (Unix) mod_perl/1.22 AuthMySQL Plus/2.20.2 PHP/3.0.14 rus/PL29.4

· Content-Length: 0

· Allow: GET, HEAD, OPTIONS, TRACE

В приведенном примере сервером сообщается установленное на нем программное обеспечение (вплоть до версии реализации) и разрешенные методы - GET, HEAD, OPTIONS, TRACE; очевидно, среди них нет ни PUT, ни DELETE, ни даже POST (администратор этого узла не сумасшедший).

Информация подобного рода значительно облегчает злоумышленнику поиск дыр в системе безопасности, потому что он может воссоздать конфигурацию сервера на собственной машине и целенаправленно исследовать код приложений на предмет ошибок, позволяющих неавторизованному пользователю получить привилегированный доступ.

Дополнение. Протокол CGI

O В этой главе:

O Краткая история создания и развития протокола CGI

O Устройство и назначение протокола CGI

O Перечень популярных CGI-переменных

Вопреки распространенному заблуждению неразрывности HTTP и CGI, последний представляет собой самостоятельный протокол, возникший еще в те незапамятные времена, когда web-серверов и в помине не существовало.

Первые, робкие попытки использования CGI-протокола HTTP-серверами относятся к 1993 году, когда возникла необходимость обрабатывать формы, заполняемые пользователем и генерировать динамические страницы, выводящие, например, результаты некоторого поиска.

Популярные книги

Поход

Валериев Игорь
4. Ермак
Фантастика:
боевая фантастика
альтернативная история
6.25
рейтинг книги
Поход

Идеальный мир для Лекаря 4

Сапфир Олег
4. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 4

Кровь на клинке

Трофимов Ерофей
3. Шатун
Фантастика:
боевая фантастика
попаданцы
альтернативная история
6.40
рейтинг книги
Кровь на клинке

Мир-о-творец

Ланцов Михаил Алексеевич
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Мир-о-творец

Курсант: Назад в СССР 10

Дамиров Рафаэль
10. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 10

Везунчик. Дилогия

Бубела Олег Николаевич
Везунчик
Фантастика:
фэнтези
попаданцы
8.63
рейтинг книги
Везунчик. Дилогия

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Мама для дракончика или Жена к вылуплению

Максонова Мария
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мама для дракончика или Жена к вылуплению

Баоларг

Кораблев Родион
12. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Баоларг

Пенсия для морского дьявола - 3. Подводный охотник

Чиркунов Игорь
3. Первый в касте бездны
Фантастика:
попаданцы
5.00
рейтинг книги
Пенсия для морского дьявола - 3. Подводный охотник

Луч света в темном царстве

Вяч Павел
2. Порог Хирург
Фантастика:
фэнтези
попаданцы
рпг
6.00
рейтинг книги
Луч света в темном царстве

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Наследник в Зеркальной Маске

Тарс Элиан
8. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник в Зеркальной Маске

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11