Вы здесь
Уязвимость в Apache с заголовком Range
чт, 25.08.2011 - 11:30 - krak
Сегодня прочитав статью на habrahabr.ru Убийца Apache у вас на пороге, я проверил свои сервера на уязвимость. Сервер на Лотусе послал меня нафиг, сказав, что он не понимает, что от него хотят (не уязвим). Два сервера на CentOS с Apache'м оказались уязвимы. Один сервер настроен через nginx и проблема быстро исправилась настройкой
proxy_set_header Range "";
А вот со вторым пришлось помучаться...
Apache собран без mod_headers.c, а значит код
RequestHeader unset Range
не поможет. Пришлось искать другие решения.
Для сайтов на движке Drupal быстро помог код в .htaccess
RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
RewriteRule .* - [F]
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
RewriteRule .* - [F]
Этот код не сработал для Wordpress. Так же не сработал код
RewriteCond %{HTTP:Range} bytes=0-[0-9]+, [NC,OR]
RewriteCond %{HTTP:Range} bytes=([0-9-],){4,} [NC,OR]
RewriteCond %{HTTP:Range} bytes=[0-9,-]+,0-(,|$) [NC]
RewriteRule .? http://%{SERVER_NAME}/ [NS,L,F]
RewriteCond %{HTTP:Range} bytes=([0-9-],){4,} [NC,OR]
RewriteCond %{HTTP:Range} bytes=[0-9,-]+,0-(,|$) [NC]
RewriteRule .? http://%{SERVER_NAME}/ [NS,L,F]
Ну а третий код успешно залатал дыру в безопасности сайта:
RewriteCond %{HTTP:Range} bytes=0-.* [NC]
RewriteRule .? http://%{SERVER_NAME}/ [R=302,L]
RewriteRule .? http://%{SERVER_NAME}/ [R=302,L]