![]() |
https://forum.antichat.xyz/attachmen...d7b32791f8.png
Всем привет колеги. Как и обещал начинаю цикл статей посвященных пентесту веб приложений по мотивам курса Вивека Рамачандрана Web Application Pentesting от PentesterAcademy Это не означает что я совсем дословно буду переводить его курс,а означает что я буду ссылаться на него как основу материала,но и забегать далеко за программу курса также не буду. Ну что же, поехали) В этой статье для демонстрации работы протокола http нам понадобится: curl netcat wireshark Все эти инструменты есть по умолчанию в Kali Linux. Я бы рекомендовал использовать этот дистрибутив в рамках этого курса. Начнем мы с самых самых основ. И так что же такое протокол HTTP? Как он структурирован ? И как работает? Давайте поглядим на следующий слайд: https://forum.antichat.xyz/attachments/4768449/1.png Ну в первую очередь что нам нужно понимать,это то что HTTP - это протокол для передачи данных в виде гипертекста который работает по принципу запроса-ответа от веб сервера . То есть простыми словами - (смотрим картинку на слайде) мы ,используя программу которая понимает и преобразовывает гипертекст (браузер в нашем случае) передаем (запрос) информацию в виде html-тегов (исходный html код страницы) на веб сервер, где эта информация обрабатывается (там в случаи необходимости ходит к Базе Данных за какими то данными ) и возвращается в виде ответа программе браузеру который ее снова преобразовывает в приемлемый для юзера вид (картинки,медиа,и т.д) А идентификация ресурсов происходит с помощью URL/URI Надеюсь тут более менее понятно,если будут трудности -читаем википедию(там все реально очень доступно расписанно ) Ну а если совсем совсем трудно будет,задавайте вопросы в комментариях - попытаюсь ответить ) Давайте попробуем посмотреть на примере как работает протокол HTTP. Хочу заметить что передавать http запросы на сервер умеет не только веб браузеры,а так же и много других программ ,в том числе и консольные утилиты такие как curl,netcat Именно их я буду использовать для демонстрации работы протокола http. Давайте посмотрим как выглядит http запрос на веб сервер. Для этого запустим wireshark на интерфейсе который используем для выхода в интернет(в моем случае это eth1 "У вас же может быть eth0 или wlan0". https://forum.antichat.xyz/attachments/4768449/1.png После запуска анализатора трафика WireShark ,давайте передадим запрос на сайт www.securitytube.net : curl -v www.securitytube.net параметром -v я указал что мне нужен более подробный вывод Как видим - curl нам сразу же говорит что когда мы обратились по URL(www.securitytube.net ) мы подключились на веб сервер с айпи адресом 173.194.73.121 на 80 порт. И мы передали на сервер наш HTTP запрос в виде 4 строчек: Код: Код:
> GET / HTTP/1.1Код: Код:
< HTTP/1.1 200 OKВ заголовках ответа видим что первым идет статус код ответа 200 ОК (Означает успешное подключение) Ну а после заголовков видим наш HTML код (гипертекст) который после обработки браузером превращается в приемлемый контент) https://forum.antichat.xyz/attachmen...e3670588d0.png Теперь давайте вернемся в WireShark и посмотрим что же произошло. Первым мы видим трафике обращение (запрос) по протоколу DNS И ответ сервера(Обращаясь по DNS имени сервер нам ответил и предоставил IP адрес который принадлежит этому днс имени) Далее идет три пакета TCP трафика,устанавливается TCP соединение с веб сервером И только потом на прикладном уровне по модели OSI посылается GET запрос (О GET|POST|HEAD запросах мы поговорим в следующей статье,так что не переживайте )по протоколу HTTP https://forum.antichat.xyz/attachments/4768449/2.png Кликнув по нашему пакету с GET запросом в WireShark В среднем окне мы можем видеть полностью сегментацию нашего пакета,от канального до прикладного уровня: Раскрыл Hyper Transport Protocol (HTTP ) мы можем полностью увидеть наш запрос который мы видели при обращении на сервер с помощью утилиты curl : https://forum.antichat.xyz/attachments/4768449/3.png Что касается заголовком которые мы передаем на сервер,думаю что здесь все понятно: HOST - это днс имя сайта к которому обращаемся https://forum.antichat.xyz/attachments/4768449/4.png UserAgent - ПО и версия через которую передавался запрос на сервер(Если бы был браузер было что то типа "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" ) https://forum.antichat.xyz/attachments/4768449/5.png Accept: https://forum.antichat.xyz/attachments/4768449/6.png Что ж вернемся в WireShark и посмотрим там ответ сервера: https://forum.antichat.xyz/attachments/4768449/8.png Видим тот же ответ что и получили через curl Заголовок Server: Google Frontend потому что Вивек используюет гугл апи на своем сайте )) Ну и ниже видим html контент ответа сервера) Ну вообщем это пока все для этой статьи ребята) В следующей статьи мы поговорим с вами о GET,POST и HEAD запросах ,а также научимсявручную передавать на сервер запросы с использованием NetCat) До новых встреч) Если понравилась статья - жмакни лайк) Как дополнение к статье - рекомендую посмотреть курс про WireShark от Udemy который я запостил здесь на форуме) Всем спасибо) |
Статья гуд для новичков. В плане хека от себя добавлю что у версии Apache ниже 1.3 была уязвимость, что заливался шелл методом PUT . Что является классическим примером использования уязвимостей чисто протокола без каких либо дополнительных дырок. И примеров когда ломается чисто протоколом не мало. Может быть я бы автору порекомендовал бы на каждый такой материал парочку профитов от себя подкинуть. Думаю у тебя их не мало
|
Цитата:
Профиты будут) Но пока информация примерно в рамках программы курса) От себя буду добавлять по немножку, а то можно таким образом уйти далеко от программы) |
Цитата:
|
Спасибо за курс! А ссылочку на "курс про WireShark от Udemy" можно обновить?
|
| Время: 17:55 |