[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Full-disclosure] Apache Killer



Hi Douglas,
I'd put optional spaces (\s*) between bytes= and the ranges and between ranges.

The following

> bytes=    0-1,  5-69,-69

is a valid Range header value (I mean that is accepted by apache).

I agree with you about not to check the http method (GET/HEAD/POST seem to be 
all vulnerable) and about the use of the [N]o[S]ub and the [L]ast flag.

To sum up I'd rather use something like the following:

> RewriteEngine On
> RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
> RewriteRule .* - [NS,L,F]

I can say nothing about the efficiency of the Cond.

If you remove any check that matches a single range webdav should work. It 
seems really unusual for a service to use multiple ranges to me...

Davide.



On 24/ago/2011, at 15:40, Douglas Huff wrote:

> I think this is a more complete rule that should be slightly more efficient 
> and thorough even though it's 3 separate matches:
> 
> RewriteEngine On
> 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]
> 
> I cannot remember if the second RewriteCond's syntax is supported by 
> mod_rewrite and don't have a machine handy right this moment to test 
> effectiveness anyhow.
> 
> This should stop any requests with a range starting with 0- specified as a 
> range (first and third rule) or 4 or more ranges included (second rule).
> 
> -- 
> Douglas Huff
> 
> On Aug 24, 2011, at 5:29 AM, Carlos Alberto Lopez Perez wrote:
> 
>> On 20/08/11 14:05, Moritz Naumann wrote:
>>> On 20.08.2011 00:23 HI-TECH . wrote:
>>>> (see attachment)
>>>> /Kingcope
>>> 
>>> Works (too) well here. Are there any workarounds other than rate
>>> limiting or detecting + dropping the traffic IPS-wise?
>>> 
>>> Moritz
>>> 
>> 
>> You can use the following redirect as a temporally workaround:
>> 
>> # a2enmod rewrite
>> 
>> RewriteEngine On
>> RewriteCond %{HTTP:Range} bytes=0-.* [NC]
>> RewriteRule .? http://%{SERVER_NAME}/ [R=302,L]
>> 
>> 
>> 
>> _______________________________________________
>> Full-Disclosure - We believe in it.
>> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
>> Hosted and sponsored by Secunia - http://secunia.com/
> 
> _______________________________________________
> Full-Disclosure - We believe in it.
> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
> Hosted and sponsored by Secunia - http://secunia.com/

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/