Всем привет! В этой статье я уделю внимание WEB-серверам и протоколу HTTP.
HTTP— протокол прикладного уровня основной задачей, которого является обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. Основой HTTP является технология «клиент-сервер».
Ниже мы рассмотрим список методов запроса к серверу:
GET — при помощи него происходит запрос браузером любого файла веб-сервера. HTTP-запрос типа GET состоит только из HTTP-заголовков, тело у него отсутствует.
При помощи GET-запроса можно передать веб-серверу параметры — некоторую информацию. Если на сайте предусмотрена авторизация пользователей, то с помощью параметров можно передавать имя пользователя и пароль.
POST - Метод запроса POST нужен для запроса, при котором веб-сервер получает данные, заключенные в тело сообщения, для хранения. Он нередко используется для загрузки файла или заполнения форм. Отличие метода POST от GET, метод POST скрывает все передаваемые им переменные и их значения, в своём теле (Entity-Body). В случае с методом GET они хранились в строке запроса (Request-URI). В рамках POST запроса произвольное количество данных любого типа может быть отправлено на сервер в теле сообщения запроса. Поля заголовка в POST-запросе обычно указывают на тип содержимого.
HEAD - Метод HEAD используется для запроса получения информации о наличии документа, а не самого документа. HEAD, намного быстрее, чем GET. Так как передается значительно меньше информации.
PUT - Применяется для загрузки содержимого запроса на указанный в запросе URI. Если по заданному URI не существует ресурс, то сервер создаёт его и возвращает статус 201 (Created). Если ресурс изменен, сервер возвращает 200 (Ok) или 204 (No Content). Сервер в основном обрабатывает некорректные заголовки Content, передаваемые клиентом вместе с сообщением. Если какой-то из этих заголовков не распознан или не допустим при текущих условиях, то возвращается код ошибки 501 (Not Implemented). Различие методов POST и PUT заключается в понимании предназначений URI ресурсов. Метод POST предполагает, что по указанному URI будет производиться обработка передаваемого клиентом содержимого. Используя PUT, клиент полагает, что загружаемое содержимое соответствует тому, что находится на данном URI ресурсе.
DELETE - Посредством DELETE клиент или злоумышленник получит возможность для удаления файла с сервера. Или произведет операции, которые могут нарушить связь с сервером.
CONNECT - Устанавливает туннель, чтобы обеспечить безопасное соединение и обмен данными между клиентом и сервером, к примеру HTTP прокси и SSL шифрования.
OPTIONS - возвращает методы HTTP, поддерживаемые указанным URL. Он используется для описания параметров связи для целевого ресурса.
TRACE – Этот метод возвращает клиенту содержимое строки отправленной в качестве запроса на сервер. Используется в основном для отладки.
Теперь, когда мы с этим немного разобрались, попробуем выяснить, какие методы разрешены на тестируемом Web – сервере. В качестве подопытного будем использовать Apache версии 2.4.
Первый способ (1): Curl.
> curl –v –X OPTIONS 192.16.31.165
Отрицательный результат, тоже результат. Curl ничего не обнаружил.
Второй способ (2): Nikto:
> nikto –h 192.168.31.165
Этот метод сканирования так же не принес особых результатов.
Способ номер три (3): Nmap.
> nmap –script http-methods –script-args http-method.test-all=’/192.168.31.165’ 192.168.31.165
Здесь результат более информативен. Анализируем и делаем выводы.
Способ номер четыре (4): Metasploit Scanner.
> use auxiliary/scanner/http/options
> set rhosts 192.168.31.165
> set rport 80
> exploit
Этот сканер был не в силах, вытащить какую либо информацию о сервере вообще.
Спасибо за внимание.
HTTP— протокол прикладного уровня основной задачей, которого является обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. Основой HTTP является технология «клиент-сервер».
Ниже мы рассмотрим список методов запроса к серверу:
GET — при помощи него происходит запрос браузером любого файла веб-сервера. HTTP-запрос типа GET состоит только из HTTP-заголовков, тело у него отсутствует.
При помощи GET-запроса можно передать веб-серверу параметры — некоторую информацию. Если на сайте предусмотрена авторизация пользователей, то с помощью параметров можно передавать имя пользователя и пароль.
POST - Метод запроса POST нужен для запроса, при котором веб-сервер получает данные, заключенные в тело сообщения, для хранения. Он нередко используется для загрузки файла или заполнения форм. Отличие метода POST от GET, метод POST скрывает все передаваемые им переменные и их значения, в своём теле (Entity-Body). В случае с методом GET они хранились в строке запроса (Request-URI). В рамках POST запроса произвольное количество данных любого типа может быть отправлено на сервер в теле сообщения запроса. Поля заголовка в POST-запросе обычно указывают на тип содержимого.
HEAD - Метод HEAD используется для запроса получения информации о наличии документа, а не самого документа. HEAD, намного быстрее, чем GET. Так как передается значительно меньше информации.
PUT - Применяется для загрузки содержимого запроса на указанный в запросе URI. Если по заданному URI не существует ресурс, то сервер создаёт его и возвращает статус 201 (Created). Если ресурс изменен, сервер возвращает 200 (Ok) или 204 (No Content). Сервер в основном обрабатывает некорректные заголовки Content, передаваемые клиентом вместе с сообщением. Если какой-то из этих заголовков не распознан или не допустим при текущих условиях, то возвращается код ошибки 501 (Not Implemented). Различие методов POST и PUT заключается в понимании предназначений URI ресурсов. Метод POST предполагает, что по указанному URI будет производиться обработка передаваемого клиентом содержимого. Используя PUT, клиент полагает, что загружаемое содержимое соответствует тому, что находится на данном URI ресурсе.
DELETE - Посредством DELETE клиент или злоумышленник получит возможность для удаления файла с сервера. Или произведет операции, которые могут нарушить связь с сервером.
CONNECT - Устанавливает туннель, чтобы обеспечить безопасное соединение и обмен данными между клиентом и сервером, к примеру HTTP прокси и SSL шифрования.
OPTIONS - возвращает методы HTTP, поддерживаемые указанным URL. Он используется для описания параметров связи для целевого ресурса.
TRACE – Этот метод возвращает клиенту содержимое строки отправленной в качестве запроса на сервер. Используется в основном для отладки.
Теперь, когда мы с этим немного разобрались, попробуем выяснить, какие методы разрешены на тестируемом Web – сервере. В качестве подопытного будем использовать Apache версии 2.4.
Первый способ (1): Curl.
> curl –v –X OPTIONS 192.16.31.165
Отрицательный результат, тоже результат. Curl ничего не обнаружил.
Второй способ (2): Nikto:
> nikto –h 192.168.31.165
Этот метод сканирования так же не принес особых результатов.
Способ номер три (3): Nmap.
> nmap –script http-methods –script-args http-method.test-all=’/192.168.31.165’ 192.168.31.165
Здесь результат более информативен. Анализируем и делаем выводы.
Способ номер четыре (4): Metasploit Scanner.
> use auxiliary/scanner/http/options
> set rhosts 192.168.31.165
> set rport 80
> exploit
Этот сканер был не в силах, вытащить какую либо информацию о сервере вообще.
Спасибо за внимание.