• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Статья Penetration testing web-сервера

Vander

CodebyTeam
Администратор
16.01.2016
1 226
3 335
#1
Всем привет! В этой статье я уделю внимание WEB-серверам и протоколу HTTP.

upload_2017-2-2_19-39-32.png

HTTP— протокол прикладного уровня основной задачей, которого является обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. Основой HTTP является технология «клиент-сервер».

Ниже мы рассмотрим список методов запроса к серверу:

upload_2017-2-2_19-39-48.png

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

upload_2017-2-2_19-40-22.png

Отрицательный результат, тоже результат. Curl ничего не обнаружил.

Второй способ (2): Nikto:

> nikto –h 192.168.31.165


upload_2017-2-2_19-40-59.png

Этот метод сканирования так же не принес особых результатов.

Способ номер три (3): Nmap.

> nmap –script http-methods –script-args http-method.test-all=’/192.168.31.165’ 192.168.31.165

upload_2017-2-2_19-41-55.png

Здесь результат более информативен. Анализируем и делаем выводы.

Способ номер четыре (4): Metasploit Scanner.

> use auxiliary/scanner/http/options

> set rhosts 192.168.31.165

> set rport 80

> exploit

upload_2017-2-2_19-42-25.png

Этот сканер был не в силах, вытащить какую либо информацию о сервере вообще.

Спасибо за внимание.
 

Вложения

Вверх Снизу