lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 24 Aug 2011 16:26:10 +0200
From: Davide Guerri <davide.guerri@...il.com>
To: Douglas Huff <dhuff@...obdobbs.org>
Cc: full-disclosure@...ts.grok.org.uk
Subject: Re: 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/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ