<~DarkNode~>
22.12.2016, 18:41
https://forum.antichat.xyz/attachments/4768921/2016.png
Привет колеги.
Добро пожаловать на курс Web Application Pentesting.
В этой статье мы с вами научимся:
Вручную посылать запросы на веб сервер через консольную утилиту NetCat(как альтернативу можно так же использовать telnet клиент)
Так же познакомимся с методами HTTP запросов
Научимся перечислять доступные методы HTTP запросов через:
метод OPTIONS
скрипт Nmap
Metasploit Framerok
Немного познакмимся с вектором HTTP Verb Tampering, небольшой профит от автора)
И так мы рассмотрим способы создания запросов с нуля, руками, в консоли. Зачем? Порой попадая на какуе то удаленную машину где доступно только консольное окружения может возникнут необходимость проверить какой то внутренний сайт,который к примеру может быть доступен только с удаленной машины или на локалхосте.Вторая причина почему нам это нужно - мы не раз будем сталкиватся с модификацией запросов на веб сервер через прокси утилиты(Burp Suite или Owasp ZaP к примеру) где будет необходимо понимания отправки запросов на сервер.
И так для примера создания запроса воспользуемся консольной утилитой NetCat.
Вспомним из моей прошлой статьи (https://forum.antichat.xyz/threads/558644/)
что curl посылал на сервер 4 строки,на для ознакомление понадобятся первые 2 :
Код:
> GET / HTTP/1.1
> Host: www.securitytube.net
И так , сперва установим соединение с сайтом на 80 порту командой:
Код:
nc www.securitytube.net 80
Затем передадим наши две строчки и нажмем два раза Enter:
https://forum.antichat.xyz/attachments/4768921/2016.png
После чего видим что сервер нам отвечает заголовками ,за которыми идет html контент.
От себя добавлю что для удобства в линуксе можно использовать перенаправления STDOUT одной команды на STDIN другой команды,простыми словами что бы каждый раз не вводить вручную наши две строчки мы можем выполнить следующую команду:
Код:
cat hosts.txt | nc www.securitytube.net 80
Где hosts.txt- это подготовленный файл с нашими строчками запроса.
Вывод содержимого этого файла мы передали в качестве ввода для команды nc www.securitytube.net 80
И таким образом получили тот же результат)
Подбробнее о перенаправление ввода вывода команд при создании http запросов вручную так же можно посмотреть здесь
https://forum.antichat.xyz/attachments/4768921/2016.png
Думаю что с этими двумя строчками понятно все из прошлой статьи:
GET / HTTP/1.1 -- обратится к домашней странице по протоколу HTTP/1.1
Host: www.securitytube.net- днс имя хоста.
Что бы обратится не на домашнюю страницу используется запрос вида:
Код:
GET /путь_к_локальному_ресурсу HTTP/1.1
Host:Имя_Хоста
Вот для примера обратимся по какому то несуществещому ресурсу:
Код:
GET /codeby.txt
Host:www.securitytube.net
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим сервер ответил 404 кодом ответа,из прошлой статьи помним ,что это означает что ресурс не был найден по заданому адресу.
Как вы уже смогли догадатся что запрос в примере выше передавался через метод GET.
Но так же существует и ряд других методов,и некоторые из них представляют опасность если их не правильно использовать.
Давайте глянем на слайд
https://forum.antichat.xyz/attachments/4768921/img_223a4518e6.png
HEAD - этот метод позволяет в качестве ответа получить только заголовки ответа сервера .
GET - все параметры передаються в URL.
POST - данные передаются через сабмит веб форм,заполненние текстовых полей и т.д
PUT - этот метод позволяет клиентам загружать новые файлы на веб-сервер.
DELETE - этот метод позволяет клиентам удалять файлы, хранящиеся на веб-сервере.
TRACE - этот метод возвращает в ответе клиенту строку, которая была ему послана и используется в большинстве случаев для отладки. Но также этот метод может быть использован для проведения атаки Cross Site Tracing (XST).
OPTIONS - вернет перечень доступных методов.
CONNECT- этот метод может позволить клиентам использовать веб-сервер в качестве прокси-сервера.
Методы GETи POST пожалуй самые популярные методы для взаимодействия с веб-сервером.
Итак, мы с Вами научились посылать вручную запросы на сервер и знаем какие моды HTTP существуют.Теперь появляется новый вопрос:
Как узнать какие методы поддерживаются на веб сервере?
Для это воспользуемся консольной утилитой curlи запустим ее с параметром -X(параметр -X отвечает за передаваемый метод HTTP запроса),и в качестве метода воспользуемся методом OPTIONS,который по идеи должен перечислить нам возможные методы:
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим метод OPTIONS на этом сайте не поддерживается
Давайте для демонстрации возмем сайт где этот метод поддерживается:
Возмем сайт вивека:
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим 200 ОК значит что все гуд ,и заголовок Allowперечислил нам возможные методы
Так же этого результата можно добится через использования http-methods скрипта в Nmap:
Код:
nmap -p 80 --script http-methods vivekramachandran.com
https://forum.antichat.xyz/attachments/4768921/2016.png
И Metasploit Framework имеет в себе также такую возможность:
https://forum.antichat.xyz/attachments/4768921/2016.png
Теперь небольшой профит для закрепление знаний:
Вооружившись знаниями (Их теперь более чем достаточно) читаем про вектор HTTP Verb Tampering
Идем решать таск на рут-ми )))
Видим что нас там встречает HTTP Basic Auth:
https://forum.antichat.xyz/attachments/4768921/2016.png
Так же давайте в попробуем обратится на вебсервер через curl:
https://forum.antichat.xyz/attachments/4768921/2016.png
Видим 401 статус код ответа,который отвечает за необходимость авторизоватся на сервере.
Давайте попробуем перечислить методы через OPTIONS:
https://forum.antichat.xyz/attachments/4768921/2016.png
Хех) Видим что он нам ответил 200 Ок,
А ниже можем видеть контент где находися флаг для валидации таска)
Давайте выполним аналогичные действие через NetCatдля закрепление,в качестве метода укажим какой то несуществующий,например CODEBY метод:
Код:
CODEBY /web-serveur/ch8/ HTTP/1.1
Host: challenge01.root-me.org
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим снова 200 ОКи контент с паролем)
В следущей статье мы поближе познакомимся с HTTP Basiс Аутентификацией)
Если понравилась статья - жмакни лайк)
До новых встреч) Спасибо за внимания)
Привет колеги.
Добро пожаловать на курс Web Application Pentesting.
В этой статье мы с вами научимся:
Вручную посылать запросы на веб сервер через консольную утилиту NetCat(как альтернативу можно так же использовать telnet клиент)
Так же познакомимся с методами HTTP запросов
Научимся перечислять доступные методы HTTP запросов через:
метод OPTIONS
скрипт Nmap
Metasploit Framerok
Немного познакмимся с вектором HTTP Verb Tampering, небольшой профит от автора)
И так мы рассмотрим способы создания запросов с нуля, руками, в консоли. Зачем? Порой попадая на какуе то удаленную машину где доступно только консольное окружения может возникнут необходимость проверить какой то внутренний сайт,который к примеру может быть доступен только с удаленной машины или на локалхосте.Вторая причина почему нам это нужно - мы не раз будем сталкиватся с модификацией запросов на веб сервер через прокси утилиты(Burp Suite или Owasp ZaP к примеру) где будет необходимо понимания отправки запросов на сервер.
И так для примера создания запроса воспользуемся консольной утилитой NetCat.
Вспомним из моей прошлой статьи (https://forum.antichat.xyz/threads/558644/)
что curl посылал на сервер 4 строки,на для ознакомление понадобятся первые 2 :
Код:
> GET / HTTP/1.1
> Host: www.securitytube.net
И так , сперва установим соединение с сайтом на 80 порту командой:
Код:
nc www.securitytube.net 80
Затем передадим наши две строчки и нажмем два раза Enter:
https://forum.antichat.xyz/attachments/4768921/2016.png
После чего видим что сервер нам отвечает заголовками ,за которыми идет html контент.
От себя добавлю что для удобства в линуксе можно использовать перенаправления STDOUT одной команды на STDIN другой команды,простыми словами что бы каждый раз не вводить вручную наши две строчки мы можем выполнить следующую команду:
Код:
cat hosts.txt | nc www.securitytube.net 80
Где hosts.txt- это подготовленный файл с нашими строчками запроса.
Вывод содержимого этого файла мы передали в качестве ввода для команды nc www.securitytube.net 80
И таким образом получили тот же результат)
Подбробнее о перенаправление ввода вывода команд при создании http запросов вручную так же можно посмотреть здесь
https://forum.antichat.xyz/attachments/4768921/2016.png
Думаю что с этими двумя строчками понятно все из прошлой статьи:
GET / HTTP/1.1 -- обратится к домашней странице по протоколу HTTP/1.1
Host: www.securitytube.net- днс имя хоста.
Что бы обратится не на домашнюю страницу используется запрос вида:
Код:
GET /путь_к_локальному_ресурсу HTTP/1.1
Host:Имя_Хоста
Вот для примера обратимся по какому то несуществещому ресурсу:
Код:
GET /codeby.txt
Host:www.securitytube.net
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим сервер ответил 404 кодом ответа,из прошлой статьи помним ,что это означает что ресурс не был найден по заданому адресу.
Как вы уже смогли догадатся что запрос в примере выше передавался через метод GET.
Но так же существует и ряд других методов,и некоторые из них представляют опасность если их не правильно использовать.
Давайте глянем на слайд
https://forum.antichat.xyz/attachments/4768921/img_223a4518e6.png
HEAD - этот метод позволяет в качестве ответа получить только заголовки ответа сервера .
GET - все параметры передаються в URL.
POST - данные передаются через сабмит веб форм,заполненние текстовых полей и т.д
PUT - этот метод позволяет клиентам загружать новые файлы на веб-сервер.
DELETE - этот метод позволяет клиентам удалять файлы, хранящиеся на веб-сервере.
TRACE - этот метод возвращает в ответе клиенту строку, которая была ему послана и используется в большинстве случаев для отладки. Но также этот метод может быть использован для проведения атаки Cross Site Tracing (XST).
OPTIONS - вернет перечень доступных методов.
CONNECT- этот метод может позволить клиентам использовать веб-сервер в качестве прокси-сервера.
Методы GETи POST пожалуй самые популярные методы для взаимодействия с веб-сервером.
Итак, мы с Вами научились посылать вручную запросы на сервер и знаем какие моды HTTP существуют.Теперь появляется новый вопрос:
Как узнать какие методы поддерживаются на веб сервере?
Для это воспользуемся консольной утилитой curlи запустим ее с параметром -X(параметр -X отвечает за передаваемый метод HTTP запроса),и в качестве метода воспользуемся методом OPTIONS,который по идеи должен перечислить нам возможные методы:
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим метод OPTIONS на этом сайте не поддерживается
Давайте для демонстрации возмем сайт где этот метод поддерживается:
Возмем сайт вивека:
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим 200 ОК значит что все гуд ,и заголовок Allowперечислил нам возможные методы
Так же этого результата можно добится через использования http-methods скрипта в Nmap:
Код:
nmap -p 80 --script http-methods vivekramachandran.com
https://forum.antichat.xyz/attachments/4768921/2016.png
И Metasploit Framework имеет в себе также такую возможность:
https://forum.antichat.xyz/attachments/4768921/2016.png
Теперь небольшой профит для закрепление знаний:
Вооружившись знаниями (Их теперь более чем достаточно) читаем про вектор HTTP Verb Tampering
Идем решать таск на рут-ми )))
Видим что нас там встречает HTTP Basic Auth:
https://forum.antichat.xyz/attachments/4768921/2016.png
Так же давайте в попробуем обратится на вебсервер через curl:
https://forum.antichat.xyz/attachments/4768921/2016.png
Видим 401 статус код ответа,который отвечает за необходимость авторизоватся на сервере.
Давайте попробуем перечислить методы через OPTIONS:
https://forum.antichat.xyz/attachments/4768921/2016.png
Хех) Видим что он нам ответил 200 Ок,
А ниже можем видеть контент где находися флаг для валидации таска)
Давайте выполним аналогичные действие через NetCatдля закрепление,в качестве метода укажим какой то несуществующий,например CODEBY метод:
Код:
CODEBY /web-serveur/ch8/ HTTP/1.1
Host: challenge01.root-me.org
https://forum.antichat.xyz/attachments/4768921/2016.png
Как видим снова 200 ОКи контент с паролем)
В следущей статье мы поближе познакомимся с HTTP Basiс Аутентификацией)
Если понравилась статья - жмакни лайк)
До новых встреч) Спасибо за внимания)