#knowledge #beginners #professional
Смешная штука. Если хотите козырнуть знаниями в области веб-уязвимостей, блесните своей эрудицией и спросите своего собеседника за XST (Cross-Site Tracing).
Я не особо погружался в уязвимости связанные с работой метода TRACE на сервере. Понятно, что можно узнать некоторую полезную информацию о внутренних адресах или о том, какие заголовки добавляет прокси-сервер при запросе к веб-серверу. Но недавно случайно наткнулся на такую атаку (XST), возможную из-за включенного метода TRACE на сервере.
В общем, т.к. обращение с методом TRACE к серверу возвращает содержимое самого запроса, в этом содержимом можно обнаружить Cookie данные и прочитать их, соответственно не имеет значения ставился ли на них флаг httpOnly. Атаку можно провести только в связке с другой уязвимостью, например, XSS. Т.е. отправить TRACE запрос на текущий веб-сервер и, при чтении ответа, получить Cookie данные, недоступные нам из JS (В современных браузерах такая возможность устранена).
Пример нагрузки для получения заголовков запроса не доступных из JS:
Также следующая нагрузка имеет право на жизнь:
TR
+ одна бесполезная уязвимость в копилку вебера;)
Смешная штука. Если хотите козырнуть знаниями в области веб-уязвимостей, блесните своей эрудицией и спросите своего собеседника за XST (Cross-Site Tracing).
Я не особо погружался в уязвимости связанные с работой метода TRACE на сервере. Понятно, что можно узнать некоторую полезную информацию о внутренних адресах или о том, какие заголовки добавляет прокси-сервер при запросе к веб-серверу. Но недавно случайно наткнулся на такую атаку (XST), возможную из-за включенного метода TRACE на сервере.
В общем, т.к. обращение с методом TRACE к серверу возвращает содержимое самого запроса, в этом содержимом можно обнаружить Cookie данные и прочитать их, соответственно не имеет значения ставился ли на них флаг httpOnly. Атаку можно провести только в связке с другой уязвимостью, например, XSS. Т.е. отправить TRACE запрос на текущий веб-сервер и, при чтении ответа, получить Cookie данные, недоступные нам из JS (В современных браузерах такая возможность устранена).
Пример нагрузки для получения заголовков запроса не доступных из JS:
var xhr = new XMLHttpRequest();
xhr.open('TRACE', 'http://domain.ru/', false);
xhr.send(null);
if(200 == xhr.status)
alert(xhr.responseText);
Также следующая нагрузка имеет право на жизнь:
TR
ACE /<script>alert(42)</script> HTTP/1.0
Только в случае если эти данные сохранятся в логи и отрендерятся на какой-нибудь из страниц веб-приложения. Само по себе отражение такого контента (HTML-тегов) в ответе на TRACE запрос к XSS привести не может, по ряду причин.+ одна бесполезная уязвимость в копилку вебера;)