Web Application Pentesting. HTTP Cookies

Web Application Pentesting. HTTP Cookies

@webware

t.me/webware

Добро пожаловать на курс Web Application Pentesting колеги. Сегодня мы поговорим с Вами о куки(Cookie).


Сразу же хочу предупредить , что у Вивека (автора оригинального курса ) эта часть больше теоретическая ,но я попытаюсь вкратце изложить суть его теории. Но в конце статьи , я просто приложу видео, где очень доходчиво на русском языке объясняется специалистами Mail.Ru Group вся теория, что бы не писать много текста.


Давайте себе на секунду представим ситуацию, когда мы с утра идем на метро и встречаем там незнакомца,который говорит нам : "Привет Серега, меня зовут Иван."

Так вот , на следующие утро,мы так же встречаем этого Ивана ,который просто говорит уже нам "Привет Серега" , а то что его зовут Иван,мы уже знаем после вчерашнего знакомства.


Теперь давайте снова вернемся к нашему протоколу HTTP:

Изучив с вами механизмы базовой аутентификации мы могли бы сделать с вами вывод о том, что это создает нам ряд неудобств таких как:

Сервер не помнит о том когда в последний раз вы аутентифицировались на нем, и при последующем обращении он снова попросит вас логин и пароль.

По этому в протоколе HTTP был разработан подход к решению этой проблемы, основанный на так называемых куках|кукисах(печеньках). Этот механизм представляет из себя способ поддержания состояния(сессии) клиента.


То есть веб сервер способен сохранять и извлекать информацию об клиенте.

Информация о куки передается в виде чистого текста ,хранится как правило в файле на стороне клиента,на стороне браузера.

Простыми словами - это не что похожее на уникальный идентификатор клиента,имея который можно в уникальный способ аутентифицироватся на сервере.

Думаю ни для кого не секрет , что куки с легкостью можно посмотреть в своем браузере:

Так они выглядят в Google Chrome:

Так вот в Mozilla Firefox:

В ваершарке можно с легкостью отфильтровать куки с помощью фильтра http.cookie:

А момент выдачи куки сервером клиенту фильтром: http.set_cookie:

Сервер в свою очередь посылает клиенту заголовок Set Cookie и необходимые параметры кукисов, после чего браузер клиента принимает выдаваемые сервером куки и в потом обращается на сервер с заголовком Cookie :

Как видим из скриншотов каждая куки имеет ряд параметров. Давайте посмотрим на них:

Name=Value -- каждая кука имеет имя и свое значения

Expires -- Время жизни куки, по умолчанию - до закрытия окна

Domain - домен куки , по умолчанию - домен текущего урл

Path - путь по которому действует кука,по умолчанию путь текущего урл

Secure - кука должна передаваться только по HTTPS

HttpOnly - куки недоступны для работы с ними через JavaScript (document.cookie на пример)

Красным я выделил два параметра ,которые не маловажные в пентесте - так их отсудствие - может говорить о том что куки с легкостью можно перехватить,например через XSS атаку и т.д.


Дальше, что бы не писать здесь много текста, я всем советую посмотреть видео от специалистов mail.ru group

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

Также советую посмотреть и это видео,которое так же объясняет принцип работы куки:

Ну что же, надеюсь в видео вам все доступно объяснили. Давайте теперь по практикуемся на простеньком таске от рутми:

https://www.root-me.org/en/Challenges/Web-Server/HTTP-cookies

Стартуем таск и смотрим исходный код,находим там подсказку о том какие куки создаются сервером при переходе по ссылке:

Проверить куки легко можно в самой консоли браузера (hotkey ctrl+shift+i затем вкладка Network или сразу ctrl+shift+Q)

Далее интуитивно меняем куки на админскую куку с помощью любого куки менеджера,я использовал Cookie Manager + для Firefox. Сохраняем куку и вуаля - мы админ!)

Вот видео:

Источник codeby.net