#knowledge #beginners #professional



Смешная штука. Если хотите козырнуть знаниями в области веб-уязвимостей, блесните своей эрудицией и спросите своего собеседника за 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);




Также следующая нагрузка имеет право на жизнь:

TRACE /<script>alert(42)</script> HTTP/1.0



Только в случае если эти данные сохранятся в логи и отрендерятся на какой-нибудь из страниц веб-приложения. Само по себе отражение такого контента (HTML-тегов) в ответе на TRACE запрос к XSS привести не может, по ряду причин.



+ одна бесполезная уязвимость в копилку вебера;)