Apache2 querys filtern/einschränken

Apache, Lighttpd, nginx, Cherokee
Post Reply
[gk]nichts
Posts: 21
Joined: 2004-08-28 05:27
 

Apache2 querys filtern/einschränken

Post by [gk]nichts »

Huhu,
ich wollte mal fragen wie ich die apache2 querys ein wenig filtern kann. Konkret spiele ich damit auf einige Wurmangriffe an, die sich in meinen apache2 logs folgendermaßen niederschlagen:

Code: Select all

209.63.57.147 - - [30/Jun/2005:01:54:45 +0200] "GET /forum/viewtopic.php?p=3864&highlight=%2527%252Esystem(chr(119)%252Echr(103)[...snip...] HTTP/1.0" 200 24814 "-" "Mozilla/4.0"
Was da genau übermittelt wird weiß ich nicht genau, scheint glaube ich aber ein perl script zu sein hab mal mit ner ascii tabelle ein paar zeichen übersetzt :P

Die Operation an sich wird ja bei aktiviertem Safe_mode generell unterbunden, da die Funktion system() geschützt ist. Richtig? Leider brauche ich mindestens einen webaccount mit deaktiviertem Safe_mode wodurch ich natürlich dringend alternativen brauche :)

Habe mit dem gedanken gespielt die Funktionen system und chr via php.ini zu verbieten aber das ist sicherlich nicht die Ideallösung, da ich dann gleich exec usw. mit draufschmeissen darf. Habe auch teilweise rewrite rules gesetzt die aber leider in dem Fall nicht greifen, da alles im ascii code verschlüsselt übermittelt wird :( Hat jemand von euch eine andere Idee und könnte mir das evtl erklären?

[EDIT by Joe User: String gekürzt]
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Apache2 querys filtern/einschränken

Post by Roger Wilco »

[GK]Nichts wrote:ich wollte mal fragen wie ich die apache2 querys ein wenig filtern kann.
Such mal nach mod_security und Hardened PHP. Aber eins vorneweg: Das hilft auch nicht gegen schlechte Software.
[gk]nichts
Posts: 21
Joined: 2004-08-28 05:27
 

Re: Apache2 querys filtern/einschränken

Post by [gk]nichts »

mit schlechter Software meinst du wohl die seite über die der Angriff lief? :P

Hab mir mod_security bereites angesehen und es klingt im ersten Moment sehr gut :) Das Problem ist nur das ich vor ewigkeiten mal den Versuch mein php selbst zu kompilieren, aufgegben habe. Und ein rpm konnte ich bisher nich finden :(

zu Hardened PHP weiß ich nicht viel, versuche mich gerade schlau zu machen

Edit: Hab mal die offizielle Seite angesurft, scheint auch recht interessant zu sein. Gib es eurerseits nen tip für mich welches ich mir zulegen sollte (falls ich es einkompiliert kriege? :P)

Gibt es evtl. noch andere möglichkeiten solche verschachtelungen zu unterbinden?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache2 querys filtern/einschränken

Post by Joe User »

Es handelt sich um eine Variante des Santy-Wurms (wurde Ende 2004 als Exploit für die phpBB-Highlight-Lücke geschrieben), welche sich unter Anderem durch folgende Rewrites blocken lässt:

Code: Select all

<IfModule mod_rewrite.c>
    RewriteLog "/var/log/apache2/rewrite.log"
    RewriteLogLevel 0
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (.*)wget%20 [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)echr(.*) [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)esystem(.*) [NC,OR]
    RewriteCond %{QUERY_STRING} {.*}passthru{.*} [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)highlight=%2527 [NC,OR]
    RewriteCond %{QUERY_STRING} %70%61%73%73%74%68%72%75 [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)rush=%65%63%68 [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)rush=echo [NC]
    RewriteRule .* http://256.256.256.256/ [R=301,L]
</IfModule>
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.
tekbaron
Posts: 7
Joined: 2003-01-05 10:59
Contact:
 

Re: Apache2 querys filtern/einschränken

Post by tekbaron »

Gibt es eine Sammlung von solchen Rules ? sodas man schonmal die Allgemeinen Angriffe blocken kann ?

Joe User wrote:Es handelt sich um eine Variante des Santy-Wurms (wurde Ende 2004 als Exploit für die phpBB-Highlight-Lücke geschrieben), welche sich unter Anderem durch folgende Rewrites blocken lässt:

Code: Select all

<IfModule mod_rewrite.c>
    RewriteLog "/var/log/apache2/rewrite.log"
    RewriteLogLevel 0
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (.*)wget%20 [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)echr(.*) [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)esystem(.*) [NC,OR]
    RewriteCond %{QUERY_STRING} {.*}passthru{.*} [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)highlight=%2527 [NC,OR]
    RewriteCond %{QUERY_STRING} %70%61%73%73%74%68%72%75 [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)rush=%65%63%68 [NC,OR]
    RewriteCond %{QUERY_STRING} (.*)rush=echo [NC]
    RewriteRule .* http://256.256.256.256/ [R=301,L]
</IfModule>
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache2 querys filtern/einschränken

Post by Joe User »

Tekbaron wrote:Gibt es eine Sammlung von solchen Rules ? sodas man schonmal die Allgemeinen Angriffe blocken kann ?
http://www.modsecurity.org/
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.
[gk]nichts
Posts: 21
Joined: 2004-08-28 05:27
 

Re: Apache2 querys filtern/einschränken

Post by [gk]nichts »

Jau, die Rules habe ich bereits gesetzt nur mit http://127.0.0.1 anstelle von http://256.256.256.256/ . Wo genau ist da nun der Unterschied? Ersteres schickt die anfrage an den localhost glaub ich, oder? Zweiteres müsste sie ins Nirvana jagen?

Achja ne idee wie ich testen kann ob das ganze auch richtig klappt?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache2 querys filtern/einschränken

Post by Joe User »

[GK]Nichts wrote:Ersteres schickt die anfrage an den localhost glaub ich, oder? Zweiteres müsste sie ins Nirvana jagen?
Richtig.
[GK]Nichts wrote:Achja ne idee wie ich testen kann ob das ganze auch richtig klappt?
Exploit besorgen, anpassen, anwenden...
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.
Post Reply