-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
====================================================
How to gain r00t SQL access on hoststar.ch MySQL Servers
====================================================
Discvovered by: Simon
INTRODUCTION
Es ist möglich durch den nichtaktivierten "Safe Mode" in Apache httpd 1.3.29 php mod
Systembefehle durch ein serverseitiges PHP Script auszuführen. Somit kann man die
Config Files von MySQL auslesen, bzw. das Root Password in Plaintext ausgeben.
PROBLEM ONE "Safe Mode"
Safe Mode ist der Versuch, Sicherheitsprobleme bei gemeinsam genutzten Servern zu
lösen. Bezogen auf die Systemarchitektur, ist es der falsche Ansatz, diese Probleme
innerhalb der PHP Schicht lösen zu wollen. Da es auf Ebene des Webservers bzw. des
Betriebssystems keine praktischen Alternativen gibt, wird Safe Mode nunmehr von vielen
Leuten, vor allem von Providern, eingesetzt.
Wie man "Safe Mode" konfiguriert
safe_mode = Off
safe_mode_gid = 0
safe_mode_include_dir =
safe_mode_exec_dir =
open_basedir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
Wenn safe_mode aktiviert ist, überprüft PHP, ob der Eigentümer des laufenden Skriptes
dem Eigentümer der Datei entspricht, an der mit Hilfe der Dateifunktionen gearbeitet
werden soll.
Beispiel:
-rw-rw-r-- 1 claude rasmus 33 Jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd
Bei der Ausführung dieses Skriptes
erscheint bei aktiviertem Safe Mode folgende Warnung:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2
Wenn anstelle von safe_mode ein open_basedir Verzeichnis angegeben wurde, können
Dateioperationen nur noch unterhalb dieses Verzeichnisses vorgenommen werden.
Beispiel (Apache httpd.conf):