Michael Hilscher <macvampi@michael-hilscher.de> schrieb:
> Ich weiss nicht recht. Die Syntax für safe_mode sieht bei mir anders
> aus. Allerdings hast Du ja geschrieben, dass Dir open_basedir Probleme
> bereitet. Nun verstehe ich allerdings nicht _was_ nicht funktioniert.
Das Problem ist ja, daß das Skript des User funktioniert obwohl es das
nicht sollte. Es macht ein ls -l unter /var/www, dann ändert er es auf
ein interessantes Verzeichnis das der Apache lesen kann, dann macht er
sein system("cat INTERESSANTE_DATEI") und liest Daten aus wie die
config.php des Webforums das läuft ( http://fud.prohost.org ), wo das
MySQL-Passwort des Forums drinsteht, etc....
Bei der Einstellung:
<VirtualHost XXX.XXX.XXX.XXX>
ServerName SERVER/members/USER
ServerAlias SERVER/members/USER
DocumentRoot /var/www/members/USER
User USER
Group USER
php_admin_flag safe_mode on
php_admin_value open_basedir /var/www/members/USER
</VirtualHost>
geht das Skript immer noch:
<?php
echo "You have been 0wnzd";
system("ls /var/www/ -l");
system("cat /var/www/.....");
?>
Füge ich dem Virtuel Host ein <Directory> mit /var/www/members/* hinzu
mit open_basedir auch auf /var/www/members/* (ein genauer Pfad wie
/var/www/members/USER ändert nichts ?!) und safe_mode on, dann geht das
Skript nicht mehr ABER auch nichts das nur unterhalb des Verzeichnisses
arbeiten würde bzw. ein <?phpinfo?> oder ein <?php echo "test"; ?>
> OpenBasedir sperrt Befehle in das angegebene Dir und seine
> Unterverzeichnisse ein. Falls Dein PHP Script also irgendwo ausserhalb
> vom open_basedir zugreifen will, erklärt das ein "funktioniert nicht".
Das wäre ja auch das gewünschte :) . Aber entweder alle PHP-Sachen gehen
oder keine, ausser ein <?php echo "test; ?> zählt als "ausserhalb".
> php_admin_value open_basedir /home/kundenserver/xyz
> php_admin_flag safe_mode on
>
> Wie gesagt - bis auf den Safe_mode ist es bei mir identisch.
Wie du oben siehst hab ich das ergänzt, ändert aber nix :( .
> Falls Dein User in /var/www/members/USER sein Webverzeichnis hat und
> darauf zugreifen kann, ist es schon richtig so. Aber wie gesagt - WAS
> geht denn nicht? Welche Fehlermeldungen kommen denn?
Siehe oben, er kann entweder überall zugreifen oder nirgends, beides
nicht erwünscht. Und das nur mit einer Konfiguration die absolut nicht
dem entspricht was die Dokumentation sagen würde.
Ich benutze PHP und Apache aus Woody mit Sicherheitsupdates, also keine
Veränderungen.
> Was für Passwörter denn? /etc/passwd oder gar /etc/shadow (LOL)? Liegen
> die Passwortdateien ausserhalb vom Open_basedir?
Nein,natürlich nicht /etc.. , es geht um die Files die auch unter
/var/www liegen und vom User www-data gelesen werden kann, wie eben
z.B. die config.php eines Webforums, eines Portals usw....usf....
>
> Du kannst mit dem minni PHP Script:
> --- cut ---
> <?php
> echo phpinfo ();
> ?>
> --- /cut ---
> überprüfen, welche Einstellungen für den Ort in dem das PHP Script
> ausgeführt wurde gelten.
open_basedir no value no value
safe_mode Off Off
Er übernimmt die Einstellungen also nicht....aber warum?
Herzlichen Dank für weitere Hilfe,
Ciao,
Steve
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
"Be the change you want to see in the world"-Mahatma Gandhi
Jabber-ID: lotussteve@cargal.org
Attachment:
pgpIIXtw0XM3W.pgp
Description: PGP signature