Вы здесь

Уязвимость в Apache с заголовком Range

Сегодня прочитав статью на 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]

Этот код не сработал для 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-.* [NC]
   RewriteRule .? http://%{SERVER_NAME}/ [R=302,L]