Page 1 of 1

mod_security phpMyAdmin Frage

Posted: 2006-10-19 22:44
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

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-20 07:08
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.

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-20 08:27
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

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-22 20:16
by icebreaker
Ich glaube einfach indem du mod_security für bestimmte Vhosts inkludierst und nicht auf dem globalen Niveau anwendest.

Gruß,

Ice

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-22 22:21
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...

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-23 02:48
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>

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-26 00:26
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

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-26 06:43
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.

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-26 07:39
by tommbutu
wäre es nicht sinnvoller im bezug auf php auf suhosin zu setzen anstatt auf mod_security ??

Re: mod_security phpMyAdmin Frage

Posted: 2006-10-26 08:52
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: