Всем привет колеги. Как и обещал начинаю цикл статей посвященных пентесту веб приложений по мотивам курса
Ссылка скрыта от гостей
Web Application Pentesting от
Ссылка скрыта от гостей
Это не означает что я совсем дословно буду переводить его курс,а означает что я буду ссылаться на него как основу материала,но и забегать далеко за программу курса также не буду. Ну что же, поехали)
В этой статье для демонстрации работы протокола http нам понадобится:
Ссылка скрыта от гостей
Ссылка скрыта от гостей
Ссылка скрыта от гостей
Все эти инструменты есть по умолчанию в
Ссылка скрыта от гостей
. Я бы рекомендовал использовать этот дистрибутив в рамках этого курса.Начнем мы с самых самых основ.
И так что же такое протокол
Ссылка скрыта от гостей
?Как он
Ссылка скрыта от гостей
?И как
Ссылка скрыта от гостей
?Давайте поглядим на следующий слайд:
Ну в первую очередь что нам нужно понимать,это то что HTTP - это протокол для передачи данных в виде
Ссылка скрыта от гостей
который работает по принципу запроса-ответа от веб сервера . То есть простыми словами - (смотрим картинку на слайде) мы ,используя программу которая понимает и преобразовывает гипертекст (браузер в нашем случае) передаем (запрос) информацию в виде html-тегов (исходный html код страницы) на веб сервер, где эта информация обрабатывается (там в случаи необходимости ходит к Базе Данных за какими то данными ) и возвращается в виде ответа программе браузеру который ее снова преобразовывает в приемлемый для юзера вид (картинки,медиа,и т.д)А идентификация ресурсов происходит с помощью
Ссылка скрыта от гостей
/
Ссылка скрыта от гостей
Надеюсь тут более менее понятно,если будут трудности -читаем
Ссылка скрыта от гостей
(там все реально очень доступно расписанно ) Ну а если совсем совсем трудно будет,задавайте вопросы в комментариях - попытаюсь ответить )Давайте попробуем посмотреть на примере как работает протокол HTTP.
Хочу заметить что передавать http запросы на сервер умеет не только веб браузеры,а так же и много других программ ,в том числе и консольные утилиты такие как curl,netcat
Именно их я буду использовать для демонстрации работы протокола http.
Давайте посмотрим как выглядит http запрос на веб сервер.
Для этого запустим wireshark на интерфейсе который используем для выхода в интернет(в моем случае это eth1 "У вас же может быть eth0 или wlan0".
После запуска анализатора трафика WireShark ,давайте передадим запрос на сайт
Ссылка скрыта от гостей
:curl -v
Ссылка скрыта от гостей
параметром -v я указал что мне нужен более подробный вывод
Как видим - curl нам сразу же говорит что когда мы обратились по URL(
Ссылка скрыта от гостей
) мы подключились на веб сервер с айпи адресом 173.194.73.121 на 80 порт.И мы передали на сервер наш HTTP запрос в виде 4 строчек:
Код:
> GET / HTTP/1.1
> Host: www.securitytube.net
> User-Agent: curl/7.50.1
> Accept: */*
Код:
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Cache-Control: no-cache
< X-Cloud-Trace-Context: 81b2e66a998ecbfd10d4fad489def794
< Date: Sun, 18 Dec 2016 19:52:45 GMT
< Server: Google Frontend
< Content-Length: 31913
<
Ссылка скрыта от гостей
очень немаловажный этап - так как тут также встречаются всякого рода инъекции и другие уязвимости.В заголовках ответа видим что первым идет
Ссылка скрыта от гостей
200 ОК (Означает успешное подключение)Ну а после заголовков видим наш
Ссылка скрыта от гостей
код (гипертекст) который после обработки браузером превращается в приемлемый контент) Теперь давайте вернемся в WireShark и посмотрим что же произошло.
Первым мы видим трафике обращение (запрос) по протоколу
Ссылка скрыта от гостей
И ответ сервера(Обращаясь по DNS имени сервер нам ответил и предоставил IP адрес который принадлежит этому днс имени)
Далее идет три пакета TCP трафика,устанавливается
Ссылка скрыта от гостей
соединение с веб серверомИ только потом на
Ссылка скрыта от гостей
посылается GET запрос (О GET|POST|HEAD запросах мы поговорим в следующей статье,так что не переживайте )по протоколу HTTPКликнув по нашему пакету с GET запросом в WireShark
В среднем окне мы можем видеть полностью сегментацию нашего пакета,от канального до прикладного уровня:
Раскрыл Hyper Transport Protocol (HTTP ) мы можем полностью увидеть наш запрос который мы видели при обращении на сервер с помощью утилиты curl :
Что касается заголовком которые мы передаем на сервер,думаю что здесь все понятно:
HOST - это днс имя сайта к которому обращаемся
UserAgent - ПО и версия через которую передавался запрос на сервер(Если бы был браузер было что то типа "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" )
Accept:
Что ж вернемся в WireShark и посмотрим там ответ сервера:
Видим тот же ответ что и получили через curl
Заголовок Server: Google Frontend потому что Вивек используюет гугл апи на своем сайте ))
Ну и ниже видим html контент ответа сервера)
Ну вообщем это пока все для этой статьи ребята) В следующей статьи мы поговорим с вами о GET,POST и HEAD запросах ,а также научимся вручную передавать на сервер запросы с использованием NetCat)
До новых встреч)
Если понравилась статья - жмакни лайк)
Как дополнение к статье - рекомендую посмотреть курс про WireShark от Udemy который я запостил здесь на форуме)
Всем спасибо)
Вложения
Последнее редактирование: