datei schreiben
Tim
- php
0 Vinzenz Mai0 Tim
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
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
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?
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
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?
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