Что там прячет ModRewrite?

Что там прячет ModRewrite?
ModRewrite является замечательным инструментом администрирования, позволяющий менять URL "на лету" за счет использования регулярных выражений. Этот модуль веб-сервера Apache может применяться, как для сокрытия структуры сайта, так и для задач поисковой оптимизации ( SEO ) или даже с целью разграничения доступа. Довольно широкое применение ModRewrite связано с преследованием цели спрятать реальную структуру сайта подальше от посторонних глаз (каталоги, серверные сценарии и поступающие в них запросы). Нужно сказать, что кто-то даже предлагает использовать ModRewrite с целью защиты от SQL-инъекций. Разумеется, спасаться от инъекций с применением этого модуля равносильно стрельбе из пулемета по воробьям, и является довольно опасным мероприятием. name='more'> На эту тему не так давно в журнале Хакер ( 07 (138) ) была опубликована статья Тимура Юнусова ("Не перезаписью единой"), в которой рассматривались используемые методы при проведении целенаправленной атаки на сайт, "защищенный" модулем ModRewrite. И эта история получила продолжение после публикации материала на нашем Позитивном блоге. Исследователь, скрывающийся под псевдонимом 0x32353031 , предложил интересный подход раскрытия имени серверного сценария, спрятанного за ModRewrite. Предложенный им метод заключается в принудительном вызове ошибки веб-сервера 413 "Request Entity Too Large" . Указанная ошибка возникает в случае, когда веб-сервер отказывается обработать запрос по причине слишком большого размера тела запроса. Состояние 413 HTTP может быть вызвано принудительно путем установки заведомо некорректного размера длины запроса eq "Content-length: x". 0x32353031 приводит следующий пример, демонстрирующий эту идею: H=ha.ckers.org; echo -ne "POST /blog/category/webappsec/books/ HTTP/1.1
Host: $H
Connection: close
Content-length: x

" | nc $H 80 | less Т.е. для такой конфигурации: RewriteEngine On RewriteBase / RewriteRule ^([0-9]*).html /my_script_www.php?pag=$1 [L,QSA] Будет получен следующий выхлоп: К сожалению, как показали проведенные эксперименты, этот метод работает исключительно под Apache 2.x. Временным решением по устранению обсуждаемой уязвимости может быть обработка состояния 413 "Request Entity Too Large", например, с использованием стандартной директивы Apache "ErrorDocument" (ErrorDocument 413 /error.html).
server-side vulns уязвимости web 0day hack
Alt text

Если вам нравится играть в опасную игру, присоединитесь к нам - мы научим вас правилам!

Подписаться