Tim: datei schreiben

hallo

ich erzeuge mit php eine andere php Datei in der folgender Inhalt drinsteht:

$inhalt = '<?PHP
'.$s1.'
'.$s2.'
'.$s3.'
'.$s4.'
'.$s5.'
?>';

wobei $s1 ... :
$s1 = $_POST['1'];
$s2 = $_POST['2'];
$s3 = $_POST['3'];
$s4 = $_POST['4'];
$s5 = $_POST['5'];

und post['1']...:
<select size="1" name="1">
option value='include ("1.php");'>1</option>
<option value='include ("2.php");'>2</option>
<option value='include ("3.php");'>3</option>
<option value="" selected>leer</option>

wenn ich das jetzt erzeugen lasse kommt nicht
<?PHP
include ('1.php');
?>

sondern
<?PHP
include (/'1.php'/);
?>

woran könnte das liegen?

MfG Tim

  1. Hallo Tim,

    wenn ich das jetzt erzeugen lasse kommt nicht
    <?PHP
    include ('1.php');
    ?>

    sondern
    <?PHP
    include (/'1.php'/);
    ?>

    ist es nicht eher

    <?PHP
    include ('1.php');
    ?>

    woran könnte das liegen?

    an einem dämlichen Feature von PHP, den Magic Quotes, das hoffentlich bald aus PHP verschwindet. Im verlinkten Handbuchabschnitt stehen auch Maßnahmen, die Du ergreifen kannst.

    Deines ist ein Beispiel dafür, warum automatisches Maskieren Blödsinn ist. Andererseits halte ich Dein Vorgehen für supergefährlich:

    $_POST['x'] enthalte http://www.example.org/pfad/zu/gefährlichem/Code

    Der gefährliche Code wird wunderbar eingebunden, Deine Website ist bereits gehackt ...

    Freundliche Grüße

    Vinzenz

    1. Andererseits halte ich Dein Vorgehen für supergefährlich:

      $_POST['x'] enthalte http://www.example.org/pfad/zu/gefährlichem/Code

      Der gefährliche Code wird wunderbar eingebunden, Deine Website ist bereits gehackt ...

      was meinst du damit es ist gefährlich?

      1. Hallo Tim,

        Andererseits halte ich Dein Vorgehen für supergefährlich:
        $_POST['x'] enthalte http://www.example.org/pfad/zu/gefährlichem/Code
        Der gefährliche Code wird wunderbar eingebunden, Deine Website ist bereits gehackt ...

        was meinst du damit es ist gefährlich?

        Wenn der Server, den Du benutzt, den  Zugriff auf entfernte Dateien zuläßt, dann kann durch Dein Skript beliebiger Code ausgeführt werden - mit allen Rechten, die Dein Skript hat.

        Es könnte sich zunächst einmal zum Beispiel alle erreichbaren Dateien ansehen und dem Angreifer zusenden, zum Beispiel Datenbankzugangsdaten, Benutzernamen, Passwörter, ... Alles, was Deine Skripte erreichen können, kann auch der Angreifer erreichen und lesen. Nein, das ist keine angenehme Aussicht. Alles, was Deine Skripte löschen können, kann der Angreifer löschen und durch beliebigen eigenen Inhalt ersetzen. Potentielle Angreifer werden sich über Dein offenes Scheunentor freuen.

        Freundliche Grüße

        Vinzenz

        1. Es könnte sich zunächst einmal zum Beispiel alle erreichbaren Dateien ansehen und dem Angreifer zusenden, zum Beispiel Datenbankzugangsdaten, Benutzernamen, Passwörter, ... Alles, was Deine Skripte erreichen können, kann auch der Angreifer erreichen und lesen. Nein, das ist keine angenehme Aussicht. Alles, was Deine Skripte löschen können, kann der Angreifer löschen und durch beliebigen eigenen Inhalt ersetzen. Potentielle Angreifer werden sich über Dein offenes Scheunentor freuen.

          was kann ich dagegen tun?

          1. Mahlzeit,

            Potentielle Angreifer werden sich über Dein offenes Scheunentor freuen.

            was kann ich dagegen tun?

            Ganz einfach nach folgendem Grundsatz handeln: ALL INPUT IS EVIL!

            Vertraue auf NICHTS, was vom Benutzer kommt - und vor allem führe um Himmels Willen nicht einfach ohne Prüfung irgendwelchen Code (direkt oder indirekt) aus, der in irgendwelche Formulare eingegeben wird.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|