[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Frage zu Sicherheit public_html und php



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


Reply to: