PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sicherheits Lück im XAMPP wie beseitige ich sie ?



dadie
23.01.2005, 17:11
Hallo ,

Wie en paar leute wissen baue ich einen File Manager so nun ist er fertig und ich test ein wennig daran muss entsätzent feststellen Der Filemanager kann auf die Gesamte Platte von mir zugreifen auch auf per .htaccess gesperte ordner .

Ich bin entzätz und möchte gerne wissen ist das ein fehler aus XAMPP oder ist das einfach so ? Denn es kann nett angehn das wenn man oben in der kommando zeile index.php?ordner=../../../../../ eingibt auf miene gesammte plate zugreiffen kann :eek:

Ich wüsste gerne wie ich das anstelle das der Rest der platte nciht sichtbar ist.

MFG Dadie.

wrtlprnft
23.01.2005, 17:17
.htaccess-Dateien werden nur vom Apache ausgewertet, wenn auf das entsprechende Verzeichnis direkt über HTTP(S) zugegriffen wird.
Du könntest ja einfach ../ ausfiltern.

dadie
23.01.2005, 17:24
.htaccess-Dateien werden nur vom Apache ausgewertet, wenn auf das entsprechende Verzeichnis direkt über HTTP(S) zugegriffen wird.
Du könntest ja einfach ../ ausfiltern.

Währe ne Lösung trotzdem macht es mir angst per readdir kann man meine GANZE Plate auslesen sowas kann doch nicht angehn ?

Chocwise
23.01.2005, 17:31
Das ist keine Sicherheitslücke des XAMPP's alleine, sondern eine Sicherheitslücke PHP's... wenn man das als Sicherheitslücke sehen möchte.
Einigermaßen sicher fährst du im safe_mode.

Mithilfe dessen kannst du PHP anweisen lediglich in einem zuvor definierten BaseDirectory zu operieren. PHP wird sich daraufhin weigern Aktionen auszuführen, die alles tangieren würden was sich oberhalb des BaseDirectory befindet.
Nachteile sind allerdings das ein paar Funktionen damit wegfallen. Mir sind bisher allerdings nur system(), exec() und disk_free_space() bekannt.

Geh mal googlen wie man den safe_mode realisiert. Findest du nichts, sag bescheid, dann helf ich weiter.

@ wrtlprnft: ../ rausfiltern bringt da absolut gar nichts. Ich sag nur: Absolute Systempfade und system() bzw. exec().

Jesus_666
23.01.2005, 17:34
Oder man baut in sein Skript eine Abfrage ein, in welchem Verzeichnis man sich befindet. Sofern man keinen Fehler in den Code setzt kann man damit problemlos die Zugriffe auf das Skriptverzeichnis und alles darunter beschränken.

wrtlprnft
23.01.2005, 17:35
http://de.php.net/manual/de/features.safe-mode.php

Es sind noch ein paar mehr Funktionen, unter anderem auch highlight_file() und link().

dadie
23.01.2005, 17:51
Mmm. Irgentwie will der Smod nett




safe_mode = on


safe_mode_gid = on


safe_mode_include_dir = C:\Programme\XAMPP\htdocs\

safe_mode_exec_dir = C:\Programme\XAMPP\htdocs\

safe_mode_allowed_env_vars = PHP_

safe_mode_protected_env_vars = LD_LIBRARY_PATH


;open_basedir = C:\Programme\XAMPP\htdocs\

disable_functions =



wo ist da der fehler ?

Chocwise
23.01.2005, 18:44
Mmm. Irgentwie will der Smod nett




safe_mode = on


safe_mode_gid = on


safe_mode_include_dir = C:\Programme\XAMPP\htdocs\

safe_mode_exec_dir = C:\Programme\XAMPP\htdocs\

safe_mode_allowed_env_vars = PHP_

safe_mode_protected_env_vars = LD_LIBRARY_PATH


;open_basedir = C:\Programme\XAMPP\htdocs\

disable_functions =



wo ist da der fehler ?
Hmh... keine Ahnung wie man das global per php.ini macht. So hab ichs per vHost in der httpd.conf eingerichtet:
<VirtualHost servername.de>
DocumentRoot "/home/www/squarenet/www"
ServerName servername.de
php_admin_flag engine on
php_admin_flag safe_mode on
php_admin_value open_basedir /home/www/account
php_admin_value upload_tmp_dir /home/www/account/tmp
<Directory "/home/www/account">
Options -Indexes
</Directory>
</VirtualHost>

Wie du an den Systempfaden siehst, bezieht sich dies auf Linuxsysteme, müsste aber auch so mit Windows funktionieren.