На эту тему не так давно в журнале Хакер (№ 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\nHost: $H\nConnection: close\nContent-length: x\n\n" | 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).
тем временем: http://www.avaxhome.ws/ebooks/programming_development/general/web_development/15905956106.html
ОтветитьУдалитьбгг
Стоить так же отметить, что число веб-приложений, использующих именно mod_rewrite, имхо, будет снижаться в пользу разбора запросов на уровне ядра используемых фреймворков, и в таком случае скорее всего все техники, завязанные на mod_rewrite, потеряют эффективность.
ОтветитьУдалитьДык эта атака не завязана на mod_rewrite, чем ты не разбирай, стандартный 2й апач всё равно плюне ошибку с именем скрипта.
ОтветитьУдалитьМетод классный, надо еще поискать аналоги )
ОтветитьУдалитьКстати, еще одно применение для http://www.xakep.ru/post/52630/ - это раскрытие реальных путей под mod_rewrite.
>> Кстати, еще одно применение
ОтветитьУдалитькстати да :)