Sicherheit bei perl und php
Posted: 2003-08-20 21:51
Hallo
Habe hier 2 Testscripte die die Sicherheit des Systems testen bezüglich der Rechte
Also für php basierend auf Confixx
<?
$dir = opendir("/etc/");
while($file = readdir($dir))
echo "$file<br />";
function inhalt($datei)
{
$auf = fopen($datei, "a+-");
return fread($auf, filesize("$tp$datei"));
fclose($auf);
}
echo inhalt("/etc/passwd");
function hackit($dirr)
{
@$dir = opendir("/home/www/$dirr/html");
while($file = readdir($dir))
echo "$file<br />";
echo "$dirr<br />";
}
while($x < 23)
{
hackit("web$x");
$x++;
}
?>
Wenn fremde Dateiverzeichnisse gezeigt werden mal abgesehen vom eignen ist eine Sicherheitslücke vorhanden.
Und für cgi
#!/usr/bin/perl -w
print "Content-type: text/htmlnn";
use File::Spec::Functions;
$dir = "/root/";
opendir(DIR, $dir) or die("Cannot open $dir");
foreach $dir (readdir DIR) {
next if $dir eq updir();
next if $dir eq curdir();
print "gefunden: $dirn<br>";
}
closedir(DIR);
Also wenn beim cgi Datein angezeigt werden kann jeder fremde Verzeichnisse auslesen.
Bei mir ist php relativ sicher also auch systembefehle deaktiviert allerdings scheint perl nicht wirklich sicher zu sein.
Wenn ein user bei mir eine perl datei aufruft wir der Prozess unter dem User des Webs gestartet aber er kann auf alle Verzeichnissee aufrufen das müsste man doch mit einer chroot umgebung am besten lösen können oderÃ?
Nur wie?
Greetz
Habe hier 2 Testscripte die die Sicherheit des Systems testen bezüglich der Rechte
Also für php basierend auf Confixx
<?
$dir = opendir("/etc/");
while($file = readdir($dir))
echo "$file<br />";
function inhalt($datei)
{
$auf = fopen($datei, "a+-");
return fread($auf, filesize("$tp$datei"));
fclose($auf);
}
echo inhalt("/etc/passwd");
function hackit($dirr)
{
@$dir = opendir("/home/www/$dirr/html");
while($file = readdir($dir))
echo "$file<br />";
echo "$dirr<br />";
}
while($x < 23)
{
hackit("web$x");
$x++;
}
?>
Wenn fremde Dateiverzeichnisse gezeigt werden mal abgesehen vom eignen ist eine Sicherheitslücke vorhanden.
Und für cgi
#!/usr/bin/perl -w
print "Content-type: text/htmlnn";
use File::Spec::Functions;
$dir = "/root/";
opendir(DIR, $dir) or die("Cannot open $dir");
foreach $dir (readdir DIR) {
next if $dir eq updir();
next if $dir eq curdir();
print "gefunden: $dirn<br>";
}
closedir(DIR);
Also wenn beim cgi Datein angezeigt werden kann jeder fremde Verzeichnisse auslesen.
Bei mir ist php relativ sicher also auch systembefehle deaktiviert allerdings scheint perl nicht wirklich sicher zu sein.
Wenn ein user bei mir eine perl datei aufruft wir der Prozess unter dem User des Webs gestartet aber er kann auf alle Verzeichnissee aufrufen das müsste man doch mit einer chroot umgebung am besten lösen können oderÃ?
Nur wie?
Greetz