HTTP Requests blocken

Rund um die Sicherheit des Systems und die Applikationen
User avatar
p17
Posts: 10
Joined: 2008-06-28 17:42
Location: Germany
 

HTTP Requests blocken

Post by p17 »

Hallo,
ich kriege seit einiger Zeit GET Anfragen nach folgendem Muster:

Code: Select all

http://myhost.tld//index.php?_SERVER[DOCUMENT_ROOT]=http://www.otherhost.tld
von verschiedenen IPs.
Das mod_security diese Anfragen blockt, bezweifel ich, denn der apache spuckt dabei öfters gerne mal ein "200" aus, und die Logs von mod_security sind diesbezüglich auch nicht gerade aufschlussreich.
Also habe ich mir die apache Direktive "SetEnvIf" mal näher angesehen. Dazu habe ich zwei Möglichkeiten ausprobiert:
- einmal in Kombination mit der allow, deny Direktive
- und die Reject Direktive
Das sieht dann in der config so aus:

Code: Select all

        <Directory /var/www/>
        AuthzDefaultAuthoritative On
        SetEnvIf Request_URI ".*_SERVER[DOCUMENT_ROOT]=http://*" drop_them
#       Reject env drop_them

                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                deny from env=drop_them
                RewriteEngine on
                RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
                RewriteRule .* - [F]
        </Directory>
Folgende Module habe ich zusätzlich geladen:
- authz_default
- authz_host.load
- authz_user.load

Die Möglichkeit mit der Reject Direktive verlangt das "authz_core" Modul, welches ich aber nirgends finden kann. Also bieb mir die Deny Direktive.
Das scheint aber nicht zu funktionieren, denn bei Selbsttests lässt der Browser diese Anfragen durch.
Ich habe das Gefühl, das einfach nur die Regex ( SetEnvIf ...) falsch ist.

Hat jemand einen Tip?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11183
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: HTTP Requests blocken

Post by Joe User »

Statt wild an der httpd.conf rumzufummeln, solltest Du lieber schnellstens die Sicherheitslöcher in Deiner Webapplikation fixen...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
User avatar
p17
Posts: 10
Joined: 2008-06-28 17:42
Location: Germany
 

Re: HTTP Requests blocken

Post by p17 »

Danke für den Hinweis. Das hilft mir aber jetzt konkret auch nicht weiter.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: HTTP Requests blocken

Post by Roger Wilco »

P17 wrote:Danke für den Hinweis. Das hilft mir aber jetzt konkret auch nicht weiter.
Das $_SERVER Superglobal kann man von außerhalb nicht modifizieren. Wenn dein Skript trotzdem darauf reagiert, ist etwas an deinem Skript faul.
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn
 

Re: HTTP Requests blocken

Post by EdRoxter »

Ob und wie das Skript darauf reagiert, lässt sich ja anhand des HTTP-Statuscodes nicht sagen.

Ruf doch die URL einfach mal im Browser auf und schau, wie das Skript damit umgeht.
User avatar
p17
Posts: 10
Joined: 2008-06-28 17:42
Location: Germany
 

Re: HTTP Requests blocken

Post by p17 »

Ich habs jetzt doch mit mod_security gelöst:

Code: Select all

SecRule QUERY_STRING "@contains _SERVER[DOCUMENT_ROOT]=" "log,drop,msg:'SERVER[DOCUMENT_ROOT] Denied!'"

mach das, was ich will.
Ist zwar noch ausbaufähig, aber immerhin.