11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

80ВзломХАКЕР 04 /171/ 2013ЗАЩИТНЫМФИЛЬТРАМСергей Бобров@Black2Fansbobrov@ptsecurity.ruВОПРЕКИАтаки на вебприложениячерезRequest-URIWARNINGВнимание! Информация представленаисключительно с целью ознакомления!Ни авторы, ни редакция за твои действияответственности не несут!При исследовании веб-приложенияметодом «черного ящика» основноевнимание уделяется GET/POSTпараметрами содержимому пользовательскихкук. Однако небезопасномогут обрабатываться и остальныечасти запроса клиента: заголовки,путь к скрипту и так далее.Рис. 1. Обход XSS-фильтра IE в результате ошибки обработки заголовкаРЕКОГНОСЦИРОВКА НА МЕСТНОСТИРассмотрим, как выглядит URI в HTTP-запросе. По RFC 2616Request-URI может быть представлен следующим образом:Request-URI = "*" | absoluteURI | abs_path | authorityМы будем рассматривать вариант с использованием abs_path, разобьем его условно на несколько частей.abs_path = "/" [path] ["/" path_info][";" params] ["?" query_string]Так как атака подразумевает собой передачу произвольныхданных, включая спецсимволы, поподробнее остановимсяна том, где именно их можно передать в Request-URI и какиеплюсы/минусы есть у данных способов. Особое внимание будемуделять разности обработки Request-URI (таким как URLкодированиеи приведение пути к нормальному виду) популярнымина сегодняшний день браузерами, так как от этого оченьчасто зависит возможность реализации атаки на клиентов.РАЗЛИЧИЯ В ОБРАБОТКЕ ЗАПРОСОВРАЗНЫМИ БРАУЗЕРАМИQuery_string — наиболее популярное место передачи векторовдля эксплуатации уязвимостей веб-приложений. Ошибки об-работки часто обнаруживаются при исследовании отдельных его параметров. В таблице 1представлены различия обработки query_string.Принципиального различия между передачей спецсимволов в названии параметра,значении или индексе массива во время тестирования браузеров не было замечено, однакоэто очень распространенная ошибка обработки со стороны веб-приложения. Например,часто встречается вариант, когда все переданные клиентом параметры обрабатываютсяотдельно, а затем собираются назад в URI и используются для построения ссылок.При этом замена спецсимволов HTML-сущностями производится только в значении параметров,что позволяет реализовать атаку типа «межсайтовое выполнение сценариев»,задействовав несколько параметров. Основной минус разделов params и path_info в том,что их поддерживают далеко не все веб-серверы, но тем не менее о них не стоит забывать.В таблицах 2 и 3 представлены различия их обработки разными браузерами.Итак, переходим к самой интересной части, а именно к передаче векторов через путь ксценарию. Это наиболее интересный вариант, поскольку:1. Нам необходимо передать произвольные данные, то есть изменить путь, но в то же времясделать это так, чтобы запрос обрабатывал нужный уязвимый сценарий;2. Разработчики меньше всего ожидают увидеть векторы атак именно в этой части запросаи часто используют путь к сценарию без дополнительных обработок;3. Браузеры перед отправкой запроса приводят путь в Request-URI к некоторой нормальнойформе.Остановимся на третьем пункте и рассмотрим различия в обработке пути в наших браузерах.В общем случае нормализация пути включает в себя четыре шага:• замена символов \ на /;• вырезание повторяющихся символов /;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!