mod_security phpMyAdmin Frage

Apache, Lighttpd, nginx, Cherokee
cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

mod_security phpMyAdmin Frage

Post by cirox »

Hallo,

habe mod_security installiert und phpMyAdmin

Code: Select all

GET /phpMyAdmin/tbl_change.php?db=usr_webxxx_1&table=osdate_payment_config&token=bd94dxxx7df6aa0d9c371a2a4d1984190&pos=0&session_max_rows=30&
    disp_direction=horizontal&repeat_cells=100&dontlimitchars=0&sql_query=SELECT+%2A+FROM+%60osdate_payment_config%60&
    goto=sql.php%3Fdb%3Dusr_webxxx_1%26amp%3Btable%3Dosdate_payment_config%26amp%3Btoken%3Dbd94dxxx7df6aa0d9c371a2a4d1984190%26amp%3Bpos%3D0%26amp%3Bsession_max_rows%3D30%26amp%3B
    disp_direction%3Dhorizontal%26amp%3Brepeat_cells%3D100%26amp%3Bdontlimitchars%3D0%26amp%3Bsql_query%3D
    SELECT%2B%252A%2BFROM%2B%2560osdate_payment_config%2560 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: https://mein_server.de/phpMyAdmin/sql.php?db=usr_webxxx_1&table=osdate_payment_config&token=bd94dxxx7df6aa0d9c371a2a4d1984190&goto=tbl_properties_structure.php&back=tbl_properties_structure.php&pos=0
Accept-Language: de
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
Host: mein_server.de
Connection: Keep-Alive
Cookie: pma_lang=de-utf-8; pma_charset=iso-8859-1; pma_collation_connection=utf8_general_ci; phpMyAdmin=0cdba84d9116c441d623072765596432; server_id=1a5a8853d6816dbb18b3e72fcde5915c; SID=553cfefef02e92781b0efbd9b04d0e7a
Authorization: Basic d2ViMTM6MjIwNTY3
mod_security-action: 403
mod_security-message: Access denied with code 403. Pattern match "select.+from" at REQUEST_URI [severity "EMERGENCY"]
und bekomme obige Fehlermeldung im audit.log.

Klar wenn ich jetzt mod_security für phpmyadmin deaktiviere gehts wieder.

Gibts da eine andere Möglichkeit oder läuft phpMyAdmin einfach nicht mit mod_security zusammen ?

Die Regel die die Abfrage "select.+from" blockt wäre doch diese hier und die sollte man auf jeden Fall drinn lassen, denk ich mal:

Code: Select all

# SQL injection attacks
SecFilter "select.+from"
gruß cirox
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: mod_security phpMyAdmin Frage

Post by flo »

Nachdem der MyAdmin noch nicht über neuronale Schnittstellen verfügt, muß er die SQL-Befehle irgendwoher bekommen.

Diese Befehle werden dann über GET/POST übergeben und dem MyAdmin mitgeteilt - das ist ein gutes Beispiel für SQL-Injection, und zwar wirklich ein gutes zu vielen bösen.

Was also in der Applikation (=Website) defintitiv nicht angebracht ist, muß hier zwangsweise erlaubt werden - Du wirst also nicht drumherumkommen, den SecFilter für MyAdmin in irgendeiner Form zu deaktivieren.

flo.
cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

Re: mod_security phpMyAdmin Frage

Post by cirox »

hehe, ok, aber da wäre ja gleich mal eine Frage. Nämlich kann ich das irgenwie managen, dass man pro vhost unterschiedliche mod_security Regeln nimmt?

gruß cirox
icebreaker
Posts: 33
Joined: 2006-05-13 19:02

Re: mod_security phpMyAdmin Frage

Post by icebreaker »

Ich glaube einfach indem du mod_security für bestimmte Vhosts inkludierst und nicht auf dem globalen Niveau anwendest.

Gruß,

Ice
User avatar
daemotron
Administrator
Administrator
Posts: 2639
Joined: 2004-01-21 17:44

Re: mod_security phpMyAdmin Frage

Post by daemotron »

Stichworte:

Code: Select all

SecFilterEngine On/Off

<LocationMatch "/typo3/alt_doc.php">
  SecFilterRemove 300016
</LocationMatch>
Letzteres natürlich nur, wenn die Rule Chains mit entsprechendend Markern versehen wurden...
danu
Posts: 264
Joined: 2005-02-02 11:15

Re: mod_security phpMyAdmin Frage

Post by danu »

Anfangs Jahr habe ich für mod_security eine exclude.cnf Datei angelegt, welche nach und nach ergänzt wurde, u.a. mit

Code: Select all

<Location /phpMyAdmin-2.8.1/tbl_change.php>
    SecFilterInheritance Off
    SecFilterSelective ARG_authorised "select.+from" 
</Location>
cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin

Re: mod_security phpMyAdmin Frage

Post by cirox »

jfreund wrote:Stichworte:

Code: Select all

SecFilterEngine On/Off

<LocationMatch "/typo3/alt_doc.php">
  SecFilterRemove 300016
</LocationMatch>
Letzteres natürlich nur, wenn die Rule Chains mit entsprechendend Markern versehen wurden...
ok, hab ich kapiert mit den Markern und so. Also nach dem "id" setzen eine exclude.conf anlegen und die vor den eigentlichen Rules einbinden.

z. Bsp. Problem mit dem Rich Text Editor:

Code: Select all

#Typo3 link einfügen -> Rich Text Editor
<LocationMatch "/typo3/*">
SecFilterRemove 8
SecFilterRemove 100
</LocationMatch>

Code: Select all

# Prevent path traversal (..) attacks
SecFilter "../" "id:8"

# generic PHP remote file inclusion attack
SecFilter ".php?"  "chain,id:100"
SecFilter "(http|https|ftp):/" 
danu wrote: <Location /phpMyAdmin-2.8.1/tbl_change.php>
SecFilterInheritance Off
SecFilterSelective ARG_authorised "select.+from"
</Location>
das versteh ich nicht "Inheritance" ?

das rule ist doch:

Code: Select all

SecFilter "select.+from" "id:19"

gruß cirox
danu
Posts: 264
Joined: 2005-02-02 11:15

Re: mod_security phpMyAdmin Frage

Post by danu »

das versteh ich nicht "Inheritance" ?
Ich weiss nicht mehr, wo ich das her habe. Mit Gooogle nach "mod_security Inheritance" suchen, da finden sich
auch paar Beispiele. Inheritance heisst auf deutsch
Erbschaft. Daraus schliesse ich, dass mit
"SecFilterInheritance Off" entsprechendes Rule innerhalb
der betroffenen Direktive nicht weiter vererbt wird. Muss
wohl so sein, sonst würde es bei mir nicht funktionieren.
Demnach würde es auch keine Rolle spielen, an welche Stelle
eine exclude.cnf eingebunden wird.
tommbutu
Posts: 70
Joined: 2005-11-23 00:56

Re: mod_security phpMyAdmin Frage

Post by tommbutu »

wäre es nicht sinnvoller im bezug auf php auf suhosin zu setzen anstatt auf mod_security ??
User avatar
daemotron
Administrator
Administrator
Posts: 2639
Joined: 2004-01-21 17:44

Re: mod_security phpMyAdmin Frage

Post by daemotron »

Vom Funktionsumfang her würde ich Suhosin sogar noch höher einschätzen als mod_security - allerdings würde ich trotzdem bei bestimmten Sites auf eine App-Level Filterung der Requests nicht verzichten wollen. Angenommen, PHP würde aufgrund eines Implementierungsfehlers den maliziösen Request trotz Suhosin verarbeiten - mit mod_security wäre der Request gar nicht erst an PHP durchgereicht worden...

Es ist also wie immer die alte Geschichte, ob ich mich nur auf eine Verteidigungslinie verlassen will... Aber die Kombination aus grsec-gehärtetem chroot, suhosin und mod_security sollte so schnell nicht zu durchbrechen sein :wink: