Korrektur: mit dem safe_mode leben

All about webserver configurations, PHP and databases.

Moderator: Thorsten

Post Reply
meikel
Posts: 135
Joined: Wed Feb 12, 2003 11:12 am
Location: Erfurt
Contact:

Korrektur: mit dem safe_mode leben

Post by meikel »

##EDIT##

Das folgende Script funktioniert leider nicht auf solchen Systemen, bei denen der Apache nicht zur Gruppe der ftpuser gehört. Für den Fall stelle ich bei Gelegenheit ein Script vor, mit dem zB. PhpMyFaq per Webinstaller installiert werden kann.

Der folgende Text

Wer kennt es nicht: man kopiert per FTP die herrlichsten Scripts auf den Server und nix geht, weil das Script nicht dem Apachen gehört und der safe_mode den Daumen dazwischenlegt. Meist hat man nicht mal einen ssh Account, um selbst ein "chown -R <apacheuser>:<apachegroup> *" auszuführen.

Man kann allerdings folgenden Effekt ausnutzen:
beim copy (quelle, ziel) besitzen die Daten in ziel uid/gid des Apachen. Das gilt auch für mkdir () erstellte Verzeichnisse.

Mit folgendem Script kann man das ausnutzen.

- man erstellt ein Quellverzeichnis (im Beispiel ./uid
- schütze dieses natürlich mit .htaccess
- kopiere index.php rein
- weiterhin erstelle man im Quellverzeichnis ein Unterverzeichnis namens 'src'
- per FTP lädt man in src den kompletten Verzeichnisbaum des Scriptes rein, welches safe_mode gerecht installiert werden soll.
- und ruft am Schluß mit dem Browser http://hostname/uid/ auf.

Hinweis: das Script ist nur ein "getesteter Vorschlag". Es fehlen sämtliche Kontrollen, ob mkdir() und copy() auch erfolgreich waren.

Code: Select all

<?php
########################
# 
# Autor:   meikel at php-help dot info
# 
# The contents of this file are subject to the Mozilla Public License 
# Version 1.1 (the "License"); you may not use this file except in 
# compliance with the License. You may obtain a copy of the License at 
# [URL]http://www.mozilla.org/MPL/[/URL] 
# 
# Software distributed under the License is distributed on an "AS IS" 
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 
# License for the specific language governing rights and limitations 
# under the License. 
##########################

$q = './src';
$z = $_SERVER['DOCUMENT_ROOT'].'/zielverzeichnis'; # anpassen

@mkdir($z, 0777);

function copy_src ($q, $z)
{
    $d = @dir ($q);
    $q .= '/';
    $z .= '/';
    while ($n = @$d->read())
    {
        if ($n == '.' OR $n == '..') continue;
	if (is_file($q.'/'.$n)) @copy ($q.'/'.$n, $z.'/'.$n);
	if (is_dir($q.'/'.$n))
	{
	    @mkdir ($z.'/'.$n, 0777);
	    @copy_src($q.'/'.$n, $z.'/'.$n);
	}
    }
}

copy_src($q, $z);
echo "OK";

?>
Zusatz: natürlich kann man die so kopierten Scripte im Zielverzeichnis nicht mehr per FTP sondern nur noch per Script löschen, welches prinzipiell so ähnlich arbeitet.
phpels
Posts: 2
Joined: Thu Jul 30, 2009 3:56 pm

Re: Korrektur: mit dem safe_mode leben

Post by phpels »

Hi

Hat bei mir leider nicht funktioniert ( Freeglobes)

Wie lösche ich die files wieder ?

Danke
phpels
phpels
Posts: 2
Joined: Thu Jul 30, 2009 3:56 pm

Re: Korrektur: mit dem safe_mode leben

Post by phpels »

phpels wrote:Hi

Hat bei mir leider nicht funktioniert ( Freeglobes)

Wie lösche ich die files wieder ?

Danke
phpels

Schon erledigt, Danke
Post Reply