Full Disclosure mailing list archives

Re: Apache Killer


From: Davide Guerri <davide.guerri () gmail com>
Date: Wed, 24 Aug 2011 16:26:10 +0200

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/


Current thread: